/Godot 3.2

# Transform2D

2D transformation (2×3 matrix).

## Description

2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a three Vector2 values: x, y, and the origin.

## Properties

 Vector2 origin `Vector2( 0, 0 )` Vector2 x `Vector2( 1, 0 )` Vector2 y `Vector2( 0, 1 )`

## Methods

 Transform2D Transform2D ( Transform from ) Transform2D Transform2D ( Vector2 x_axis, Vector2 y_axis, Vector2 origin ) Transform2D Transform2D ( float rotation, Vector2 position ) Transform2D affine_inverse ( ) Vector2 basis_xform ( Vector2 v ) Vector2 basis_xform_inv ( Vector2 v ) Vector2 get_origin ( ) float get_rotation ( ) Vector2 get_scale ( ) Transform2D interpolate_with ( Transform2D transform, float weight ) Transform2D inverse ( ) bool is_equal_approx ( Transform2D transform ) Transform2D orthonormalized ( ) Transform2D rotated ( float phi ) Transform2D scaled ( Vector2 scale ) Transform2D translated ( Vector2 offset ) Variant xform ( Variant v ) Variant xform_inv ( Variant v )

## 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

 Default `Vector2( 0, 0 )`

The origin vector (column 2, the third column). Equivalent to array index `2`. The origin vector represents translation.

### Vector2 x

 Default `Vector2( 1, 0 )`

The basis matrix's X vector (column 0). Equivalent to array index `0`.

### Vector2 y

 Default `Vector2( 0, 1 )`

The basis matrix's Y vector (column 1). Equivalent to array index `1`.

## Method Descriptions

### Transform2D Transform2D ( Transform from )

Constructs the transform from a 3D Transform.

Constructs the transform from 3 Vector2 values representing x, y, and the origin (the three column vectors).

Constructs the transform from a given angle (in radians) and position.

### Transform2D affine_inverse ( )

Returns the inverse of the transform, under the assumption that the transformation is composed of rotation, scaling and translation.

### Vector2 basis_xform ( Vector2 v )

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 )

Returns a vector transformed (multiplied) by the inverse basis matrix.

This method does not account for translation (the origin vector).

### Vector2 get_origin ( )

Returns the transform's origin (translation).

### float get_rotation ( )

Returns the transform's rotation (in radians).

### Vector2 get_scale ( )

Returns the scale.

### Transform2D interpolate_with ( Transform2D transform, float weight )

Returns a transform interpolated between this transform and another by a given weight (on the range of 0.0 to 1.0).

### Transform2D inverse ( )

Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use affine_inverse for transforms with scaling).

### bool is_equal_approx ( Transform2D transform )

Returns `true` if this transform and `transform` are approximately equal, by calling `is_equal_approx` on each component.

### Transform2D orthonormalized ( )

Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors (scale of 1 or -1).

### Transform2D rotated ( float phi )

Rotates the transform by the given angle (in radians), using matrix multiplication.

### Transform2D scaled ( Vector2 scale )

Scales the transform by the given scale factor, using matrix multiplication.

### Transform2D translated ( Vector2 offset )

Translates the transform by the given offset, relative to the transform's basis vectors.

Unlike rotated and scaled, this does not use matrix multiplication.

### Variant xform ( Variant v )

Transforms the given Vector2, Rect2, or PoolVector2Array by this transform.

### Variant xform_inv ( Variant v )

Inverse-transforms the given Vector2, Rect2, or PoolVector2Array by this transform.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors