External Classes¶

class
affine.
Affine
[source]¶ 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. 
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
.

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

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

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: Affine

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.

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.

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

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.

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

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: Affine

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.
Parameters:  angle (float) – Rotation angle in degrees, counterclockwise about the pivot point.
 pivot (sequence) – Point to rotate about, if omitted the rotation is about the origin.
Return type:

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.

classmethod
scale
(*scaling)[source]¶ 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

classmethod
shear
(x_angle=0, y_angle=0)[source]¶ Create a shear transform along one or both axes.
Parameters: Return type:

classmethod
translation
(xoff, yoff)[source]¶ Create a translation transform from an offset vector.
Parameters: Return type:

xoff
¶ Alias for ‘c’

yoff
¶ Alias for ‘f’
