跳到主要内容

Transform

简要描述

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

描述

表示3D空间中的一个或多个变换,例如平移,旋转或缩放。它由basisorigin组成。它类似于3×4矩阵。

成员

类型属性名默认值
BasisbasisBasis( 1, 0, 0, 0, 1, 0, 0, 0, 1 )
Vector3originVector3( 0, 0, 0 )

方法

返回值类型方法名称
TransformTransform(#method-Transform)(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3, origin: Vector3)
TransformTransform(#method-Transform)(basis: Basis, origin: Vector3)
TransformTransform(#method-Transform)(from: Transform2D)
TransformTransform(#method-Transform)(from: Quat)
TransformTransform(#method-Transform)(from: Basis)
Transformaffine_inverse()
Transforminterpolate_with(transform: Transform, weight: float)
Transforminverse()
boolis_equal_approx(transform: Transform)
Transformlooking_at(target: Vector3, up: Vector3)
Transformorthonormalized()
Transformrotated(axis: Vector3, phi: float)
Transformscaled(scale: Vector3)
Transformtranslated(offset: Vector3)
Variantxform(v: Variant)
Variantxform_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
DefaultBasis( 1, 0, 0, 0, 1, 0, 0, 0, 1 )
getter****
  • Vector3 origin
DefaultVector3( 0, 0, 0 )
getter****

方法说明

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

从四个Vector3构造变换。每个轴对应于局部基向量(其中一些可以缩放)。


  • Transform Transform(basis: Basis, origin: Vector3)

BasisVector3构造变换。


  • 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向量旋转,然后通过绕垂直于targetup的轴的进一步旋转,将目标完全对齐到目标向量。

行动发生在全球空间。


  • orthonormalized orthonormalized()

返回具有正交基准(90度)和归一化轴矢量的变换。


  • rotated rotated(axis: Vector3, phi: float)

使用矩阵乘法,将变换围绕给定轴旋转给定角度(以弧度为单位)。轴必须是一个单位向量。


  • scaled scaled(scale: Vector3)

使用矩阵乘法按给定的比例因子缩放变换。


  • translated translated(offset: Vector3)

相对于变换的基础向量,以给定的偏移量变换变换。

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


  • xform xform(v: Variant)

通过此变换对给定的Vector3PlaneAABBPoolVector3Array进行变换。


  • xform_inv xform_inv(v: Variant)

通过此变换对给定的Vector3PlaneAABBPoolVector3Array进行逆变换。