Two dimensional affine transform for linear mapping from 2D coordinates to other 2D coordinates. Parallel lines are preserved by these transforms. Affine transforms can perform any combination of translations, scales/flips, shears, and rotations. Class methods are provided to conveniently compose transforms from these operations.
Internally the transform is stored as a 3x3 transformation matrix. The transform may be constructed directly by specifying the first two rows of matrix values as 6 floats. Since the matrix is an affine transform, the last row is always (0, 0, 1).
Parameters: |
|
---|
Compare transforms for approximate equality.
Parameters: |
|
---|---|
Returns: | True if absolute difference between each element of each respective tranform matrix < EPSILON. |
Return the identity transform.
Return type: | Affine |
---|
Transform a sequence of points or vectors in place.
Parameters: |
|
---|---|
Returns: | None, the input sequence is mutated in place. |
Create a rotation transform at the specified angle, optionally about the specified pivot point.
Parameters: | |
---|---|
Return type: | Affine |
Create a scaling transform from a scalar or vector.
Parameters: |
|
---|---|
Return type: | Affine |
Create a shear transform along one or both axes.
Parameters: | |
---|---|
Return type: | Affine |
Create a translation transform from an offset vector.
Parameters: |
|
---|---|
Return type: | Affine |
The values of the transform as three 2D column vectors
The determinant of the transform matrix. This value is equal to the area scaling factor when the transform is applied to a shape.
True if the transform is conformal, i.e., if angles between points are preserved after applying the transform, within rounding limits. This implies that the transform has no effective shear.
True if this transform is degenerate, which means that it will collapse a shape to an effective area of zero. Degenerate transforms cannot be inverted.
True if this transform equals the identity matrix, within rounding limits.
True if the transform is orthonormal, which means that the transform represents a rigid motion, which has no effective scaling or shear. Mathematically, this means that the axis vectors of the transform matrix are perpendicular and unit-length. Applying an orthonormal transform to a shape always results in a congruent shape.
True if the transform is rectilinear, i.e., whether a shape would remain axis-aligned, within rounding limits, after applying the transform.