基础¶
类别: 内置类型
简要说明¶
3×3矩阵数据类型。
方法¶
determinant ( ) |
|
get_euler ( ) |
|
get_scale ( ) |
|
inverse ( ) |
|
is_equal_approx ( Basis b, float epsilon=0.00001 ) |
|
orthonormalized ( ) |
|
transposed ( ) |
|
描述¶
用于三维旋转和缩放的3×3矩阵。包含3个向量字段x、y和z作为其列,这些列可以解释为转换的局部基向量。也可以作为三维矢量数组访问。这些向量彼此正交,但不一定是标准化的(由于缩放)。几乎总是用作 Transform .
对于这种用途,它由一个比例和一个旋转矩阵组成,顺序为(m=r.s)。
属性描述¶
Vector3 x
违约 |
矢量3(1,0,0) |
基矩阵的x向量。
Vector3 y
违约 |
矢量3(0,1,0) |
基矩阵的y向量。
Vector3 z
违约 |
矢量3(0,0,1) |
基矩阵的z矢量。
方法说明¶
从给定的四元数创建旋转矩阵。
从指定的Euler角度创建旋转矩阵(在YXZ约定中:首先是Z,然后是X,最后是Y),矢量格式为(X角度,Y角度,Z角度)。
创建一个旋转矩阵,该矩阵围绕给定轴以指定角度(以弧度)旋转。轴必须是标准化向量。
从3个轴向量创建矩阵。
float determinant ( )
返回矩阵的行列式。
Vector3 get_euler ( )
假设矩阵是适当的旋转矩阵(行列式为+1的正交矩阵),返回欧拉角(在y x z约定中:先是z,然后是x,最后是y)。返回的向量包含格式为(x角、y角、z角)的旋转角度。
int get_orthogonal_index ( )
此函数考虑单位球面上24个旋转点的离散化,沿向量(x,y,z)放置,每个分量为-1,0或1,并返回最能代表对象方向的点的索引。它主要由网格地图编辑器使用。有关更多详细信息,请参阅godot源代码。
Quat get_rotation_quat ( )
Vector3 get_scale ( )
假设矩阵是旋转和缩放的组合,则返回沿每个轴的缩放因子的绝对值。
Basis inverse ( )
返回矩阵的逆矩阵。
Basis orthonormalized ( )
返回矩阵的标准化正交版本(用于不时调用以避免正交矩阵的舍入错误)。这将在矩阵的基础上执行一个gram-schmidt正交化。
以phi(弧度)围绕给定轴进行附加旋转。轴必须是标准化向量。
引入由给定的三维比例因子指定的其他比例。
假设该矩阵是一个适当的旋转矩阵,SLERP用另一个旋转矩阵进行球面线性插值。
用矩阵的X轴转置的点积。
用矩阵的Y轴转置的点积。
用矩阵的Z轴转置的点积。
Basis transposed ( )
返回矩阵的转置版本。
返回被矩阵转换(相乘)的向量。
返回用转置矩阵转换(相乘)的向量。
注: 只有当矩阵表示旋转反射时,才会导致矩阵的逆矩阵相乘。