/// <summary>
 /// Initializes a new instance of the <see cref="D2D1ArcSegment"/> struct.
 /// </summary>
 /// <param name="point">The end point of the arc.</param>
 /// <param name="size">The x-radius and y-radius of the arc.</param>
 /// <param name="rotationAngle">A value that specifies how many degrees in the clockwise direction the ellipse is rotated relative to the current coordinate system.</param>
 /// <param name="sweepDirection">A value that specifies whether the arc sweep is clockwise or counterclockwise.</param>
 /// <param name="arcSize">A value that specifies whether the given arc is larger than 180 degrees.</param>
 public D2D1ArcSegment(D2D1Point2F point, D2D1SizeF size, float rotationAngle, D2D1SweepDirection sweepDirection, D2D1ArcSize arcSize)
 {
     this.point          = point;
     this.size           = size;
     this.rotationAngle  = rotationAngle;
     this.sweepDirection = sweepDirection;
     this.arcSize        = arcSize;
 }
        /// <summary>
        /// Creates a scale transformation that has the specified scale factors and center point.
        /// </summary>
        /// <param name="size">The x-axis and y-axis scale factors of the scale transformation.</param>
        /// <param name="center">The point about which the scale is performed.</param>
        /// <returns>The new scale transformation.</returns>
        public static D2D1Matrix3X2F Scale(D2D1SizeF size, D2D1Point2F center)
        {
            D2D1Matrix3X2F scale;

            scale.m11 = size.Width;
            scale.m12 = 0.0f;
            scale.m21 = 0.0f;
            scale.m22 = size.Height;
            scale.m31 = center.X - (size.Width * center.X);
            scale.m32 = center.Y - (size.Height * center.Y);

            return(scale);
        }
        /// <summary>
        /// Creates a scale transformation that has the specified scale factors.
        /// </summary>
        /// <param name="size">The x-axis and y-axis scale factors of the scale transformation.</param>
        /// <returns>The new scale transformation.</returns>
        public static D2D1Matrix3X2F Scale(D2D1SizeF size)
        {
            D2D1Matrix3X2F scale;

            scale.m11 = size.Width;
            scale.m12 = 0.0f;
            scale.m21 = 0.0f;
            scale.m22 = size.Height;
            scale.m31 = 0.0f;
            scale.m32 = 0.0f;

            return(scale);
        }
        /// <summary>
        /// Creates a translation transformation that has the specified x and y displacements.
        /// </summary>
        /// <param name="size">The distance to translate along the x-axis and the y-axis.</param>
        /// <returns>A transformation matrix that translates an object the specified horizontal and vertical distance.</returns>
        public static D2D1Matrix3X2F Translation(D2D1SizeF size)
        {
            D2D1Matrix3X2F translation;

            translation.m11 = 1.0f;
            translation.m12 = 0.0f;
            translation.m21 = 0.0f;
            translation.m22 = 1.0f;
            translation.m31 = size.Width;
            translation.m32 = size.Height;

            return(translation);
        }