Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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.
Informacja
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 <