Class ArcToCommand

  • All Implemented Interfaces:
    ArcToCommandIf, PathCommand

    public class ArcToCommand
    extends java.lang.Object
    implements ArcToCommandIf
    ArcTo command within a shape path in DrawingML: <arcTo wR="wr" hR="hr" stAng="stAng" swAng="swAng"/>

    Where wr and wh are the height and width radii of the supposed circle being used to draw the arc. This gives the circle a total height of (2 * hR) and a total width of (2 * wR)

    stAng is the start angle and swAng is the swing angle

    Java class for CT_Path2DArcTo complex type.

    The following schema fragment specifies the expected content contained within this class.

     <complexType name="CT_Path2DArcTo">
       <complexContent>
         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
           <attribute name="wR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
           <attribute name="hR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
           <attribute name="stAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
           <attribute name="swAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
         </restriction>
       </complexContent>
     </complexType>
     
    • Constructor Summary

      Constructors 
      Constructor Description
      ArcToCommand()  
    • Constructor Detail

      • ArcToCommand

        public ArcToCommand()
    • Method Detail

      • setHR

        public void setHR​(java.lang.String hr)
        Specified by:
        setHR in interface ArcToCommandIf
      • setWR

        public void setWR​(java.lang.String wr)
        Specified by:
        setWR in interface ArcToCommandIf
      • setStAng

        public void setStAng​(java.lang.String stAng)
        Specified by:
        setStAng in interface ArcToCommandIf
      • setSwAng

        public void setSwAng​(java.lang.String swAng)
        Specified by:
        setSwAng in interface ArcToCommandIf
      • convertOoxml2AwtAngle

        @Internal
        public static double convertOoxml2AwtAngle​(double ooAngle,
                                                   double width,
                                                   double height)
        Arc2D angles are skewed, OOXML aren't ... so we need to unskew them

        Furthermore, ooxml angle starts at the X-axis and increases clock-wise, whereas Arc2D api states "45 degrees always falls on the line from the center of the ellipse to the upper right corner of the framing rectangle" so we need to reverse it

         AWT:                      OOXML:
                    |90/-270                     |270/-90 (16200000)
                    |                            |
         +/-180-----------0           +/-180-----------0
                    |               (10800000)   |
                    |270/-90                     |90/-270 (5400000)
         
        Parameters:
        ooAngle - the angle in OOXML units divided by 60000
        width - the width of the bounding box
        height - the height of the bounding box
        Returns:
        the angle in degrees
        See Also:
        unskew angle
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object