/// <summary> /// Transforms the array of distances by the scale and rotation elements (only) of the CTM /// </summary> public void TransformDistances(Distance[] vectors) { Point p; Matrix m = GetCTM(); for (int i = 0; i < vectors.Length; ++i) { p = (Point)vectors[i]; m.TransformVector(p); vectors[i].Dx = p.X; vectors[i].Dy = p.Y; } }
public void VectorTransform () { var m = new Matrix (2, 0, 0, 2, 4, 4); var p = new Point (5, 6); Assert.AreEqual (new Point (10, 12), m.TransformVector (p)); var ps = new Point[10]; for (int i = 0; i < ps.Length; i++) ps [i] = new Point (3 * i, 2 * i); m.TransformVector (ps); for (int i = 0; i < ps.Length; i++) Assert.AreEqual (m.TransformVector (new Point (3 * i, 2 * i)), ps [i]); }