Transform
- class Transform(**kwargs)
- Constructors:
new() -> Gsk.Transform
Constructors
Methods
- class Transform
- equal(second: Transform | None = None) bool
Checks two transforms for equality.
- Parameters:
second – the second transform
- get_category() TransformCategory
Returns the category this transform belongs to.
- invert() Transform | None
Inverts the given transform.
If
self
is not invertible,None
is returned. Note that invertingNone
also returnsNone
, which is the correct inverse ofNone
. If you need to differentiate between those cases, you should checkself
is notNone
before calling this function.
- matrix(matrix: Matrix) Transform
Multiplies
next
with the givenmatrix
.- Parameters:
matrix – the matrix to multiply
next
with
- parse(string: str) tuple[bool, Transform]
Parses the given
string
into a transform and puts it inout_transform
.Strings printed via
to_string
can be read in again successfully using this function.If
string
does not describe a valid transform,False
is returned andNone
is put inout_transform
.- Parameters:
string – the string to parse
- perspective(depth: float) Transform
Applies a perspective projection transform.
This transform scales points in X and Y based on their Z value, scaling points with positive Z values away from the origin, and those with negative Z values towards the origin. Points on the z=0 plane are unchanged.
- Parameters:
depth – distance of the z=0 plane. Lower values give a more flattened pyramid and therefore a more pronounced perspective effect.
- rotate(angle: float) Transform | None
Rotates
next
angle
degrees in 2D - or in 3D-speak, around the Z axis. The rotation happens around the origin point of (0, 0).- Parameters:
angle – the rotation angle, in degrees (clockwise)
- rotate_3d(angle: float, axis: Vec3) Transform | None
Rotates
next
angle
degrees aroundaxis
.For a rotation in 2D space, use
rotate
- Parameters:
angle – the rotation angle, in degrees (clockwise)
axis – The rotation axis
- scale(factor_x: float, factor_y: float) Transform | None
Scales
next
in 2-dimensional space by the given factors.Use
scale_3d
to scale in all 3 dimensions.- Parameters:
factor_x – scaling factor on the X axis
factor_y – scaling factor on the Y axis
- scale_3d(factor_x: float, factor_y: float, factor_z: float) Transform | None
Scales
next
by the given factors.- Parameters:
factor_x – scaling factor on the X axis
factor_y – scaling factor on the Y axis
factor_z – scaling factor on the Z axis
- skew(skew_x: float, skew_y: float) Transform | None
Applies a skew transform.
Added in version 4.6.
- Parameters:
skew_x – skew factor, in degrees, on the X axis
skew_y – skew factor, in degrees, on the Y axis
- to_2d() tuple[float, float, float, float, float, float]
Converts a
GskTransform
to a 2D transformation matrix.self
must be a 2D transformation. If you are not sure, useget_category()
>=2D
to check.The returned values have the following layout:
| xx yx | | a b 0 | | xy yy | = | c d 0 | | dx dy | | tx ty 1 |
This function can be used to convert between a
GskTransform
and a matrix type from other 2D drawing libraries, in particular Cairo.
- to_2d_components() tuple[float, float, float, float, float, float, float]
Converts a
GskTransform
to 2D transformation factors.To recreate an equivalent transform from the factors returned by this function, use
- gsk_transform_skew (
- gsk_transform_scale (
- gsk_transform_rotate (
gsk_transform_translate (NULL, &GRAPHENE_POINT_T (dx, dy)), angle),
scale_x, scale_y),
skew_x, skew_y)
self
must be a 2D transformation. If you are not sure, useget_category()
>=2D
to check.
Added in version 4.6.
- to_affine() tuple[float, float, float, float]
Converts a
GskTransform
to 2D affine transformation factors.To recreate an equivalent transform from the factors returned by this function, use
- gsk_transform_scale (gsk_transform_translate (NULL,
&GRAPHENE_POINT_T (dx, dy)),
sx, sy)
self
must be a 2D affine transformation. If you are not sure, useto check.
- to_matrix() Matrix
Computes the actual value of
self
and stores it inout_matrix
.The previous value of
out_matrix
will be ignored.
- to_string() str
Converts a matrix into a string that is suitable for printing.
The resulting string can be parsed with
parse
.This is a wrapper around
print
.
- to_translate() tuple[float, float]
Converts a
GskTransform
to a translation operation.self
must be a 2D transformation. If you are not sure, useto check.
- transform(other: Transform | None = None) Transform | None
Applies all the operations from
other
tonext
.- Parameters:
other – Transform to apply
- transform_bounds(rect: Rect) Rect
Transforms a
graphene_rect_t
using the given transformself
.The result is the bounding box containing the coplanar quad.
- Parameters:
rect – a
graphene_rect_t
- transform_point(point: Point) Point
Transforms a
graphene_point_t
using the given transformself
.- Parameters:
point – a
graphene_point_t