Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Transform2D¶
A 2×3 matrix representing a 2D transformation.
Description¶
A 2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can represent transformations such as translation, rotation, and scaling. It consists of three Vector2 values: x, y, and the origin.
For more information, read the "Matrices and transforms" documentation article.
Poznámka
There are notable differences when using this API with C#. See C# API differences to GDScript for more information.
Tutorials¶
Properties¶
|
||
|
||
|
Constructors¶
Transform2D ( ) |
|
Transform2D ( Transform2D from ) |
|
Transform2D ( float rotation, Vector2 position ) |
|
Transform2D ( float rotation, Vector2 scale, float skew, Vector2 position ) |
|
Transform2D ( Vector2 x_axis, Vector2 y_axis, Vector2 origin ) |
Methods¶
affine_inverse ( ) const |
|
basis_xform ( Vector2 v ) const |
|
basis_xform_inv ( Vector2 v ) const |
|
determinant ( ) const |
|
get_origin ( ) const |
|
get_rotation ( ) const |
|
get_scale ( ) const |
|
get_skew ( ) const |
|
interpolate_with ( Transform2D xform, float weight ) const |
|
inverse ( ) const |
|
is_conformal ( ) const |
|
is_equal_approx ( Transform2D xform ) const |
|
is_finite ( ) const |
|
looking_at ( Vector2 target=Vector2(0, 0) ) const |
|
orthonormalized ( ) const |
|
rotated_local ( float angle ) const |
|
scaled_local ( Vector2 scale ) const |
|
translated ( Vector2 offset ) const |
|
translated_local ( Vector2 offset ) const |
Operators¶
operator != ( Transform2D right ) |
|
operator * ( PackedVector2Array right ) |
|
operator * ( Rect2 right ) |
|
operator * ( Transform2D right ) |
|
operator * ( Vector2 right ) |
|
operator * ( float right ) |
|
operator * ( int right ) |
|
operator == ( Transform2D right ) |
|
operator [] ( int index ) |
Constants¶
IDENTITY = Transform2D(1, 0, 0, 1, 0, 0)
The identity Transform2D with no translation, rotation or scaling applied. When applied to other data structures, IDENTITY performs no transformation.
FLIP_X = Transform2D(-1, 0, 0, 1, 0, 0)
The Transform2D that will flip something along the X axis.
FLIP_Y = Transform2D(1, 0, 0, -1, 0, 0)
The Transform2D that will flip something along the Y axis.
Property Descriptions¶
Vector2 origin = Vector2(0, 0)
The origin vector (column 2, the third column). Equivalent to array index 2
. The origin vector represents translation.
Vector2 x = Vector2(1, 0)
The basis matrix's X vector (column 0). Equivalent to array index 0
.
Vector2 y = Vector2(0, 1)
The basis matrix's Y vector (column 1). Equivalent to array index 1
.
Constructor Descriptions¶
Transform2D Transform2D ( )
Constructs a default-initialized Transform2D set to IDENTITY.
Transform2D Transform2D ( Transform2D from )
Constructs a Transform2D as a copy of the given Transform2D.
Transform2D Transform2D ( float rotation, Vector2 position )
Constructs the transform from a given angle (in radians) and position.
Transform2D Transform2D ( float rotation, Vector2 scale, float skew, Vector2 position )
Constructs the transform from a given angle (in radians), scale, skew (in radians) and position.
Transform2D Transform2D ( Vector2 x_axis, Vector2 y_axis, Vector2 origin )
Constructs the transform from 3 Vector2 values representing x, y, and the origin (the three column vectors).
Method Descriptions¶
Transform2D affine_inverse ( ) const
Returns the inverse of the transform, under the assumption that the basis is invertible (must have non-zero determinant).
Vector2 basis_xform ( Vector2 v ) const
Returns a vector transformed (multiplied) by the basis matrix.
This method does not account for translation (the origin vector).
Vector2 basis_xform_inv ( Vector2 v ) const
Returns a vector transformed (multiplied) by the inverse basis matrix, under the assumption that the basis is orthonormal (i.e. rotation/reflection is fine, scaling/skew is not).
This method does not account for translation (the origin vector).
transform.basis_xform_inv(vector)
is equivalent to transform.inverse().basis_xform(vector)
. See inverse.
For non-orthonormal transforms (e.g. with scaling) transform.affine_inverse().basis_xform(vector)
can be used instead. See affine_inverse.
float determinant ( ) const
Returns the determinant of the basis matrix. If the basis is uniformly scaled, then its determinant equals the square of the scale factor.
A negative determinant means the basis was flipped, so one part of the scale is negative. A zero determinant means the basis isn't invertible, and is usually considered invalid.
Vector2 get_origin ( ) const
Returns the transform's origin (translation).
float get_rotation ( ) const
Returns the transform's rotation (in radians).
Vector2 get_scale ( ) const
Returns the scale.
float get_skew ( ) const
Returns the transform's skew (in radians).
Transform2D interpolate_with ( Transform2D xform, float weight ) const
Returns a transform interpolated between this transform and another by a given weight
(on the range of 0.0 to 1.0).
Transform2D inverse ( ) const
Returns the inverse of the transform, under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection is fine, scaling/skew is not). Use