Class ArcToCommand

  • All Implemented Interfaces:
    ArcToCommandIf, PathCommand

    public class ArcToCommand
    extends 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 Detail

      • ArcToCommand

        public ArcToCommand()
    • Method Detail

      • 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object