Module: gears.matrix
An implementation of matrices for describing and working with affine
transformations.
-
🔗
gears.matrix.create (xx, yx, xy, yy, x0, y0)
-
Create a new matrix instance
Parameters:
xx |
|
number |
The xx transformation part. |
yx |
|
number |
The yx transformation part. |
xy |
|
number |
The xy transformation part. |
yy |
|
number |
The yy transformation part. |
x0 |
|
number |
The x0 transformation part. |
y0 |
|
number |
The y0 transformation part. |
Returns:
A new matrix describing the given transformation.
-
🔗
gears.matrix.create_translate (x, y)
-
Create a new translation matrix
Parameters:
x |
|
number |
The translation in x direction. |
y |
|
number |
The translation in y direction. |
Returns:
A new matrix describing the given transformation.
-
🔗
gears.matrix.create_scale (sx, sy)
-
Create a new scaling matrix
Parameters:
sx |
|
number |
The scaling in x direction. |
sy |
|
number |
The scaling in y direction. |
Returns:
A new matrix describing the given transformation.
-
🔗
gears.matrix.create_rotate (angle)
-
Create a new rotation matrix
Parameters:
angle |
|
number |
The angle of the rotation in radians. |
Returns:
A new matrix describing the given transformation.
-
🔗
gears.matrix.create_rotate_at (x, y, angle)
-
Create a new rotation matrix rotating around a custom point
Parameters:
x |
|
number |
The horizontal rotation point |
y |
|
number |
The vertical rotation point |
angle |
|
number |
The angle of the rotation in radians. |
Returns:
A new matrix describing the given transformation.
-
🔗
gears.matrix.identity
matrix
-
A constant for the identity matrix.
-
🔗
:translate (x, y)
-
Translate this matrix
Parameters:
x |
|
number |
The translation in x direction. |
y |
|
number |
The translation in y direction. |
Returns:
A new matrix describing the new transformation.
-
🔗
:scale (sx, sy)
-
Scale this matrix
Parameters:
sx |
|
number |
The scaling in x direction. |
sy |
|
number |
The scaling in y direction. |
Returns:
A new matrix describing the new transformation.
-
🔗
:rotate (angle)
-
Rotate this matrix
Parameters:
angle |
|
number |
The angle of the rotation in radians. |
Returns:
A new matrix describing the new transformation.
-
🔗
:rotate_at (x, y, angle)
-
Rotate a shape from a custom point
Parameters:
x |
|
number |
The horizontal rotation point |
y |
|
number |
The vertical rotation point |
angle |
|
number |
The angle (in radiant: -2math.pi to 2math.pi) |
Returns:
A transformation object
-
🔗
:invert ()
-
Invert this matrix
Returns:
A new matrix describing the inverse transformation.
-
🔗
:multiply (other)
-
Multiply this matrix with another matrix.
The resulting matrix describes a transformation that is equivalent to first
applying this transformation and then the transformation from
other
.
Note that this function can also be called by directly multiplicating two
matrix instances: a * b == a:multiply(b)
.
Parameters:
other |
|
gears.matrix or cairo.Matrix |
The other matrix to multiply with. |
Returns:
The multiplication result.
-
🔗
:equals (other)
-
Check if two matrices are equal.
Note that this function cal also be called by directly comparing two matrix
instances:
a == b
.
Parameters:
other |
|
gears.matrix or cairo.Matrix |
The matrix to compare with. |
Returns:
True if this and the other matrix are equal.
-
🔗
:tostring ()
-
Get a string representation of this matrix
Returns:
A string showing this matrix in column form.
-
🔗
:transform_distance (x, y)
-
Transform a distance by this matrix.
The difference to matrix:transform_point is that the translation part of
this matrix is ignored.
Parameters:
x |
|
number |
The x coordinate of the point. |
y |
|
number |
The y coordinate of the point. |
Returns:
-
number
The x coordinate of the transformed point.
-
number
The x coordinate of the transformed point.
-
🔗
:transform_point (x, y)
-
Transform a point by this matrix.
Parameters:
x |
|
number |
The x coordinate of the point. |
y |
|
number |
The y coordinate of the point. |
Returns:
-
number
The x coordinate of the transformed point.
-
number
The y coordinate of the transformed point.
-
🔗
:transform_rectangle (x, y, width, height)
-
Calculate a bounding rectangle for transforming a rectangle by a matrix.
Parameters:
x |
|
number |
The x coordinate of the rectangle. |
y |
|
number |
The y coordinate of the rectangle. |
width |
|
number |
The width of the rectangle. |
height |
|
number |
The height of the rectangle. |
Returns:
-
number
X coordinate of the bounding rectangle.
-
number
Y coordinate of the bounding rectangle.
-
number
Width of the bounding rectangle.
-
number
Height of the bounding rectangle.
-
🔗
:to_cairo_matrix ()
-
Convert to a cairo matrix
Returns:
cairo.Matrix
A cairo matrix describing the same transformation.
-
🔗
:from_cairo_matrix (mat)
-
Convert to a cairo matrix
Parameters:
mat |
|
cairo.Matrix |
A cairo matrix describing the sought transformation |
Returns:
gears.matrix
A matrix instance describing the same transformation.