Transform
简要描述
3D变换(3×4矩阵)。
描述
表示3D空间中的一个或多个变换,例如平移,旋转或缩放。它由basis和origin组成。它类似于3×4矩阵。
成员
类型 | 属性名 | 默认值 |
---|---|---|
Basis | basis | Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 ) |
Vector3 | origin | Vector3( 0, 0, 0 ) |
方法
返回值类型 | 方法名称 |
---|---|
Transform | Transform(#method-Transform)(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3, origin: Vector3) |
Transform | Transform(#method-Transform)(basis: Basis, origin: Vector3) |
Transform | Transform(#method-Transform)(from: Transform2D) |
Transform | Transform(#method-Transform)(from: Quat) |
Transform | Transform(#method-Transform)(from: Basis) |
Transform | affine_inverse() |
Transform | interpolate_with(transform: Transform, weight: float) |
Transform | inverse() |
bool | is_equal_approx(transform: Transform) |
Transform | looking_at(target: Vector3, up: Vector3) |
Transform | orthonormalized() |
Transform | rotated(axis: Vector3, phi: float) |
Transform | scaled(scale: Vector3) |
Transform | translated(offset: Vector3) |
Variant | xform(v: Variant) |
Variant | xform_inv(v: Variant) |
常量
- **IDENTITY = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )**
Transform不应用平移,旋转或缩放。
- **FLIP_X = Transform( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )**
垂直于YZ平面应用镜像的Transform。
- **FLIP_Y = Transform( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 )**
垂直于XZ平面应用镜像的Transform。
- **FLIP_Z = Transform( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 )**
垂直于XY平面应用镜像的Transform。
成员说明
- Basis basis
Default | Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 ) |
---|---|
getter | **** |
- Vector3 origin
Default | Vector3( 0, 0, 0 ) |
---|---|
getter | **** |
方法说明
- Transform Transform(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3, origin: Vector3)
从四个Vector3构造变换。每个轴对应于局部基向量(其中一些可以缩放)。
- Transform Transform(basis: Basis, origin: Vector3)
- Transform Transform(from: Transform2D)
从Transform2D构造Transform。
- Transform Transform(from: Quat)
从Quat构造变换。原点为Vector3(0,0,0)。
- Transform Transform(from: Basis)
根据Basis构造变换。原点为Vector3(0,0,0)。
- affine_inverse affine_inverse()
假设变换由旋转,缩放和平移组成,则返回变换的逆函数。
- interpolate_with interpolate_with(transform: Transform, weight: float)
按权重(0-1)将变换插值到其他变换。
- inverse inverse()
在假设变换由旋转和平移组成的情况下(不缩放,使用affine_inverse进行缩放)将返回变换的逆。
- is_equal_approx is_equal_approx(transform: Transform)
如果此变换和transform
大致相等,则通过在每个组件上调用is_equal_approx
来返回true
。
- looking_at looking_at(target: Vector3, up: Vector3)
返回旋转后的变换的副本,使其-Z轴指向target
位置。
首先绕给定的up
向量旋转,然后通过绕垂直于target
和up
的轴的进一步旋转,将目标完全对齐到目标向量。
行动发生在全球空间。
- orthonormalized orthonormalized()
返回具有正交基准(90度)和归一化轴矢量的变换。
- rotated rotated(axis: Vector3, phi: float)
使用矩阵乘法,将变换围绕给定轴旋转给定角度(以弧度为单位)。轴必须是一个单位向量。
- scaled scaled(scale: Vector3)
使用矩阵乘法按给定的比例因子缩放变换。
- translated translated(offset: Vector3)
相对于变换的基础向量,以给定的偏移量变换变换。
- xform xform(v: Variant)
通过此变换对给定的Vector3,Plane,AABB或PoolVector3Array进行变换。
- xform_inv xform_inv(v: Variant)
通过此变换对给定的Vector3,Plane,AABB或PoolVector3Array进行逆变换。