A transformation matrix [a b c d e f]: the 3-by-3 matrix [a b 0; c d 0; e f 1] that maps a point of one
coordinate space to another, applied to row vectors.
public readonly struct Matrix : IEquatable<Matrix>
ISO 32000-2 §8.3.3 and §8.3.4. A point (x, y) maps to (a·x + c·y + e, b·x + d·y + f). A transformation applied
after an existing one is premultiplied: M′ = Mₜ × M, which is how cm changes the current transformation matrix
(Table 56). Coordinates and elements are doubles so that large offsets with small scales keep their precision.
Any six numbers make a matrix, including singular ones (scaling by zero): they are legal operands and map everything to a line or a point. TryInvert(out Matrix) reports whether an inverse exists.
kind:method, kind:property, kind:ctor. Press Esc to clear.Matrix(Double, Double, Double, Double, Double, Double)Initializes a new instance of the Matrix struct.AGets the element a.BGets the element b.CGets the element c.DGets the element d.DeterminantGets the determinant a·d − b·c; zero for a matrix that has no inverse.EGets the element e.FGets the element f.IdentityGets the identity matrix [1 0 0 1 0 0].IsIdentityGets a value indicating whether this is the identity matrix.CreateScale(Double, Double)Returns a scaling by (sx, sy): [sx 0 0 sy 0 0].CreateTranslation(Double, Double)Returns a translation by (tx, ty): [1 0 0 1 tx ty].Multiply(Matrix, Matrix)Returns the composite transformation: first first, then second.ToString()Returns the matrix as a PDF array would write it, such as [1 0 0 1 0 0].Transform(PathPoint)Maps a point.Transform(Double, Double)Maps a point.TransformVector(Double, Double)Maps a distance vector: the linear part only, without the translation.TryInvert(out Matrix)Computes the inverse transformation, when one exists.Equality(Matrix, Matrix)Returns whether two matrices have the same elements.Inequality(Matrix, Matrix)Returns whether two matrices differ.Multiply(Matrix, Matrix)Returns the composite transformation: first first, then second.