Matrix represents an affine transformation between two coordinate spaces in 2 dimensions. Such a transform preserves the "straightness" and "parallelness" of lines. The transform is built from a sequence of translations, scales, flips, rotations, and shears.
The transformation can be represented using matrix math on a 3x3 array. Given (x, y), the transformation (x', y') can be found by:
[ x'] [ scaleX shearX translateX ] [ x ] [ y'] = [ shearY scaleY translateY ] [ y ] [ 1 ] [ 0 0 1 ] [ 1 ] [ scaleX * x + shearX * y + translateX ] = [ shearY * x + scaleY * y + translateY ] [ 1 ]
The bottom row of the matrix is constant, so a transform can be uniquely represented by "[[scaleX, shearX, translateX], [shearY, scaleY, translateY]]".
Constructors
Construct a transform with the given matrix entries:
[ scaleX shearX translateX ] [ shearY scaleY translateY ] [ 0 0 1 ]
- Parameters:
- scaleX: Number — the x scaling component
- shearY: Number — the y shearing component
- shearX: Number — the x shearing component
- scaleY: Number — the y scaling component
- translateX: Number — the x translation component
- translateY: Number — the y translation component
- Returns:
- Matrix
Construct a matrix from a sequence of numbers. The array must have at least 4 entries, which has a translation factor of 0; or 6 entries, for specifying all parameters:
[ values[0] values[2] (values[4]) ] [ values[1] values[3] (values[5]) ] [ 0 0 1 ]
- Parameters:
- values: Array of Number — the matrix to copy from, with at least 4 (6) entries
- Returns:
- Matrix
- Throws:
- NullPointerException — if values is null
- ArrayIndexOutOfBoundsException — if values is too small
Properties
- Returns:
- Number
- Returns:
- Number
Functions
Creates the inverse transformation of the matrix. If the matrix is not invertible (in which case isSingular() returns true), invert() returns null, otherwise the matrix itself is modified and a reference to it is returned.
- Returns:
- Matrix — the inverted matrix, or null, if the matrix is singular
Matrix Concatenation
Concatenates the matrix with a translation matrix that translates by (x, y). The object itself is modified and a reference to it is returned.
- Parameters:
- x: Number — the x coordinate of the translation
- y: Number — the y coordinate of the translation
- Returns:
- Matrix — the translated matrix
Concatenates the matrix with a matrix that rotates coordinates by a specified angle (and around a center point, if specified). The matrix itself is modified and a reference to it is returned.
Angles are oriented clockwise and measured in degrees by default. Read more about angle units and orientation in the description of the point.angle property.
- Parameters:
- angle: Number — the angle to rotate by
- center: Point — the center point around which to rotate — optional
- Returns:
- Matrix — a reference to the matrix
Concatenates the matrix with a shearing matrix. The object itself is modified and a reference to it is returned.
- Parameters:
- shearX: Number — the horizontal shearing
- shearY: Number — the vertical shearing
- Returns:
- Matrix — a reference to the matrix
Concatenates the specified matrix to the matrix in the most commonly useful way to provide a new user space that is mapped to the former user space by the specified matrix. The matrix itself is modified and a reference to it is returned.
- Parameters:
- matrix: Matrix
- Returns:
- Matrix — a reference to the matrix
Concatenates the specified matrix to the matrix in a less commonly used way such that the specified matrix modifies the coordinate transformation relative to the absolute pixel space rather than relative to the existing user space. The object itself is modified and a reference to it is returned.
- Parameters:
- matrix: Matrix
- Returns:
- Matrix — a reference to the matrix
Tests
Checks whether the matrix is an identity. Identity matrices are equal to their inversion.
- Returns:
- Boolean — true if the matrix is an identity, false otherwise
Checks whether the matrix is singular or not. Singular matrices cannot be inverted.
- Returns:
- Boolean — true if the matrix is singular, false otherwise