Transform
3D 变换(3×4 矩阵)。
描述
用于 3D 线性变换的 3×4 矩阵(3 行 4 列),可以表示平移、旋转、缩放等变换。它由一个 basis(前 3 列)和一个 origin 的 Vector3(最后一列)组成。
更多信息请阅读文档文章《矩阵和变换》。
教程
属性
| ||
|
方法
Transform ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin ) | |
Transform ( Transform2D from ) | |
affine_inverse ( ) | |
interpolate_with ( Transform transform, float weight ) | |
inverse ( ) | |
is_equal_approx ( Transform transform ) | |
looking_at ( Vector3 target, Vector3 up ) | |
orthonormalized ( ) | |
translated ( Vector3 offset ) | |
常量
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平面的镜像应用。
属性说明
- Basis basis
Default |
|
基础是一个包含3个Vector3作为其列的矩阵:X轴、Y轴和Z轴。这些向量可以被解释为随物体移动的局部坐标系的基础向量。
- Vector3 origin
Default |
|
变换的平移偏移量,即第3、4列。相当于数组索引3
。
方法说明
从四个 Vector3 值(即矩阵列)构造一个变换。每个轴对应于局部基础向量,其中一些可能被缩放。
从 Basis 和 Vector3 构造一个 Transform 变换。
- Transform Transform ( Transform2D from )
从一个 Transform2D 构造一个 Transform 变换。
从一个 Quat 构造一个 Transform 变换。原点是 Vector3(0, 0, 0)
。
从一个 Basis 构造 Transform 变换。原点是 Vector3(0, 0, 0)。
- Transform affine_inverse ( )
返回变换的反值,假设变换是由旋转、缩放和平移组成的。
通过权重,即在0.0到1.0的范围内,将变换与其他变换进行插值。
- Transform inverse ( )
返回变换的反值,假设该变换是由旋转和平移组成的(没有缩放,对有缩放的变换使用 affine_inverse)。
如果这个变换和transform
近似相等,通过对每个分量调用is_equal_approx
,而返回true
。
返回一个旋转后的变换副本,使其-Z轴指向target
位置。
变换将首先围绕给定的up
向量旋转,然后进一步通过围绕垂直于target
和up
向量的轴旋转,来完全与目标对齐。
操作是在全局空间进行的。
- Transform orthonormalized ( )
返回具有基于正交,即90度,和归一化轴向量的变换。
使用矩阵乘法,围绕给定的轴旋转给定的角度,即弧度。轴必须是一个归一化的向量。
使用矩阵乘法,通过给定的缩放系数,对变换的基础和原点进行缩放。
相对于变换的基础向量,将变换按给定的偏移量进行平移。
通过这个变换对指定的Vector3、Plane、AABB或PoolVector3Array进行变换。
将给定的 Vector3、Plane、AABB、PoolVector3Array 做该变换的逆变换,前提假设是该变换仅由旋转和平移构成(不包括缩放)。等价于调用该变换的 inverse().xform(v)
。仿射变换(即包含缩放)请参阅 affine_inverse 方法。