External Classes¶

class
affine.
Affine
[source]¶ Two dimensional affine transform for 2D linear mapping.
 Parameters
b, c, d, e, f (a,) –
Coefficients of an augmented affine transformation matrix
x’   a b c   x y’  =  d e f   y 1   0 0 1   1 a, b, and c are the elements of the first row of the matrix. d, e, and f are the elements of the second row.

a, b, c, d, e, f, g, h, i
The coefficients of the 3x3 augumented affine transformation matrix
x’   a b c   x y’  =  d e f   y 1   g h i   1 g, h, and i are always 0, 0, and 1.
 Type

The Affine package is derived from Casey Duncan's Planar package.

See the copyright statement below. 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.
 Type
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.

almost_equals
(other, precision=1e05)[source]¶ Compare transforms for approximate equality.
 Parameters
other (Affine) – Transform being compared.
 Returns
True if absolute difference between each element of each respective transform matrix <
self.precision
.

property
column_vectors
¶ The values of the transform as three 2D column vectors

property
determinant
¶ The determinant of the transform matrix.
This value is equal to the area scaling factor when the transform is applied to a shape.

property
eccentricity
¶ The eccentricity of the affine transformation.
This value represents the eccentricity of an ellipse under this affine transformation.
Raises NotImplementedError for improper transformations.

classmethod
from_gdal
(c, a, b, f, d, e)[source]¶ Use same coefficient order as GDAL’s GetGeoTransform().
 Parameters
a, b, f, d, e (c,) – 6 floats ordered by GDAL.
 Return type

property
is_conformal
¶ 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.

property
is_degenerate
¶ 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.

property
is_identity
¶ True if this transform equals the identity matrix, within rounding limits.

property
is_orthonormal
¶ 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 unitlength. Applying an orthonormal transform to a shape always results in a congruent shape.

property
is_proper
¶ True if this transform is proper.
Which means that it does not include reflection.

property
is_rectilinear
¶ True if the transform is rectilinear.
i.e., whether a shape would remain axisaligned, within rounding limits, after applying the transform.

itransform
(seq)[source]¶ Transform a sequence of points or vectors in place.
 Parameters
seq – Mutable sequence of
Vec2
to be transformed. Returns
None, the input sequence is mutated in place.

classmethod
permutation
(*scaling)[source]¶ Create the permutation transform
For 2x2 matrices, there is only one permutation matrix that is not the identity.
 Return type

classmethod
rotation
(angle, pivot=None)[source]¶ Create a rotation transform at the specified angle.
A pivot point other than the coordinate system origin may be optionally specified.

property
rotation_angle
¶ The rotation angle in degrees of the affine transformation.
This is the rotation angle in degrees of the affine transformation, assuming it is in the form M = R S, where R is a rotation and S is a scaling.
Raises NotImplementedError for improper transformations.

property
xoff
¶ Alias for ‘c’

property
yoff
¶ Alias for ‘f’