Two dimensional affine transform for 2D linear mapping.
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).
N.B.: multiplication of a transform and an (x, y) vector always returns the column vector that is the matrix multiplication product of the transform and (x, y) as a column vector, no matter which is on the left or right side. This is obviously not the case for matrices and vectors in general, but provides a convenience for users of this class.
Parameters: members (float) – 6 floats for the first two matrix rows.
Compare transforms for approximate equality.
Parameters: other (Affine) – Transform being compared. Returns: True if absolute difference between each element of each respective transform matrix <
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.
from_gdal(c, a, b, f, d, e)¶
Use same coefficient order as GDAL’s GetGeoTransform().
Parameters: a, b, f, d, e (c,) – 6 floats ordered by GDAL. Return type: Affine
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.
Transform a sequence of points or vectors in place.
Parameters: seq – Mutable sequence of
Vec2to be transformed.
Returns: None, the input sequence is mutated in place.
Create a rotation transform at the specified angle.
A pivot point other than the coordinate system origin may be optionally specified.
- angle (float) – Rotation angle in degrees, counter-clockwise about the pivot point.
- pivot (sequence) – Point to rotate about, if omitted the rotation is about the origin.
Create a scaling transform from a scalar or vector.
Parameters: scaling (float or sequence) – The scaling factor. A scalar value will scale in both dimensions equally. A vector scaling value scales the dimensions independently. Return type: Affine
Create a shear transform along one or both axes.
Parameters: Return type:
Create a translation transform from an offset vector.
Parameters: Return type:
Alias for ‘c’
Alias for ‘f’