Transform

3D 变换(3×4 矩阵)。

描述

用于 3D 线性变换的 3×4 矩阵(3 行 4 列),可以表示平移、旋转、缩放等变换。它由一个 basis(前 3 列)和一个 originVector3(最后一列)组成。

更多信息请阅读文档文章《矩阵和变换》。

教程

属性

Basis

basis

Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 )

Vector3

origin

Vector3( 0, 0, 0 )

方法

Transform

Transform ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin )

Transform

Transform ( Basis basis, Vector3 origin )

Transform

Transform ( Transform2D from )

Transform

Transform ( Quat from )

Transform

Transform ( Basis from )

Transform

affine_inverse ( )

Transform

interpolate_with ( Transform transform, float weight )

Transform

inverse ( )

bool

is_equal_approx ( Transform transform )

Transform

looking_at ( Vector3 target, Vector3 up )

Transform

orthonormalized ( )

Transform

rotated ( Vector3 axis, float phi )

Transform

scaled ( Vector3 scale )

Transform

translated ( Vector3 offset )

Variant

xform ( Variant v )

Variant

xform_inv ( Variant v )

常量

  • IDENTITY = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) —- 未应用平移、旋转、缩放的 Transform。当应用于其他数据结构时,IDENTITY 不执行变换。

  • FLIP_X = Transform( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) —- Transform 变换与垂直于YZ平面的镜像应用。

  • FLIP_Y = Transform( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 ) —- Transform 变换与垂直于XZ平面的镜像应用。

  • FLIP_Z = Transform( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 ) —- Transform变换与垂直于XY平面的镜像应用。

属性说明

Default

Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 )

基础是一个包含3个Vector3作为其列的矩阵:X轴、Y轴和Z轴。这些向量可以被解释为随物体移动的局部坐标系的基础向量。


Default

Vector3( 0, 0, 0 )

变换的平移偏移量,即第3、4列。相当于数组索引3

方法说明

从四个 Vector3 值(即矩阵列)构造一个变换。每个轴对应于局部基础向量,其中一些可能被缩放。


BasisVector3 构造一个 Transform 变换。


从一个 Transform2D 构造一个 Transform 变换。


从一个 Quat 构造一个 Transform 变换。原点是 Vector3(0, 0, 0)


从一个 Basis 构造 Transform 变换。原点是 Vector3(0, 0, 0)。


返回变换的反值,假设变换是由旋转、缩放和平移组成的。


通过权重,即在0.0到1.0的范围内,将变换与其他变换进行插值。


返回变换的反值,假设该变换是由旋转和平移组成的(没有缩放,对有缩放的变换使用 affine_inverse)。


如果这个变换和transform近似相等,通过对每个分量调用is_equal_approx,而返回true


返回一个旋转后的变换副本,使其-Z轴指向target位置。

变换将首先围绕给定的up向量旋转,然后进一步通过围绕垂直于targetup向量的轴旋转,来完全与目标对齐。

操作是在全局空间进行的。


返回具有基于正交,即90度,和归一化轴向量的变换。


使用矩阵乘法,围绕给定的轴旋转给定的角度,即弧度。轴必须是一个归一化的向量。


使用矩阵乘法,通过给定的缩放系数,对变换的基础和原点进行缩放。


相对于变换的基础向量,将变换按给定的偏移量进行平移。

rotatedscaled不同,它不使用矩阵乘法。


通过这个变换对指定的Vector3PlaneAABBPoolVector3Array进行变换。


将给定的 Vector3PlaneAABBPoolVector3Array 做该变换的逆变换,前提假设是该变换仅由旋转和平移构成(不包括缩放)。等价于调用该变换的 inverse().xform(v)。仿射变换(即包含缩放)请参阅 affine_inverse 方法。