System.Drawing.Drawing2D.Matrix.TransformVectors C# (CSharp) Method

TransformVectors() public method

public TransformVectors ( Point pts ) : void
pts Point
return void
        public void TransformVectors(Point[] pts)
        {
            if (pts == null)
                throw new ArgumentNullException ("pts");

            for (int i = 0; i < pts.Length; i++){
                var point = pts [i];
                pts [i] = new Point ((int)(transform.xx * point.X + transform.xy * point.Y),
                                     (int)(transform.yx * point.X + transform.yy * point.Y));
            }
        }

Same methods

Matrix::TransformVectors ( PointF pts ) : void

Usage Example

Ejemplo n.º 1
0
        internal static float ConvertSweepAngle(float sweepAngle, float startAngle, SpatialTransform transform, CoordinateSystem targetSystem)
        {
            PointF x = new PointF(100, 0);

            PointF[] startVector = new PointF[] { x };
            Matrix   rotation    = new Matrix();

            rotation.Rotate(startAngle);
            rotation.TransformVectors(startVector);

            PointF[] sweepVector = (PointF[])startVector.Clone();
            rotation.Reset();
            rotation.Rotate(sweepAngle);
            rotation.TransformVectors(sweepVector);
            rotation.Dispose();

            SizeF startVectorTransformed, sweepVectorTransformed;

            if (targetSystem == Graphics.CoordinateSystem.Destination)
            {
                startVectorTransformed = transform.ConvertToDestination(new SizeF(startVector[0]));
                sweepVectorTransformed = transform.ConvertToDestination(new SizeF(sweepVector[0]));
            }
            else
            {
                startVectorTransformed = transform.ConvertToSource(new SizeF(startVector[0]));
                sweepVectorTransformed = transform.ConvertToSource(new SizeF(sweepVector[0]));
            }

            // simply return the angle between the start and sweep angle, in the target system.
            return((int)Math.Round(Vector.SubtendedAngle(sweepVectorTransformed.ToPointF(), PointF.Empty, startVectorTransformed.ToPointF())));
        }
All Usage Examples Of System.Drawing.Drawing2D.Matrix::TransformVectors