Quat

四元数.

描述

一个用于表示 3D 旋转的单位四元数。四元数需要经过归一化才能用于旋转。

它类似于 Basis,后者实现了旋转的矩阵表示,并且可以使用轴-角对或欧拉角进行参数化。Basis 可以存储旋转、缩放和错切,而 Quat 只存储旋转。

由于它的紧凑性和在内存中的存储方式,某些操作(特别是获得轴角和执行 SLERP)更加有效,并且对浮点错误有很强的抵抗力。

教程

属性

float

w

1.0

float

x

0.0

float

y

0.0

float

z

0.0

方法

Quat

Quat ( Basis from )

Quat

Quat ( Vector3 euler )

Quat

Quat ( Vector3 axis, float angle )

Quat

Quat ( float x, float y, float z, float w )

float

angle_to ( Quat to )

Quat

cubic_slerp ( Quat b, Quat pre_a, Quat post_b, float weight )

float

dot ( Quat b )

Vector3

get_euler ( )

Quat

inverse ( )

bool

is_equal_approx ( Quat quat )

bool

is_normalized ( )

float

length ( )

float

length_squared ( )

Quat

normalized ( )

void

set_axis_angle ( Vector3 axis, float angle )

void

set_euler ( Vector3 euler )

Quat

slerp ( Quat to, float weight )

Quat

slerpni ( Quat to, float weight )

Vector3

xform ( Vector3 v )

常量

  • IDENTITY = Quat( 0, 0, 0, 1 ) —- 单位四元数,代表无旋转。等效于单位 Basis 矩阵。如果一个向量被一个单位四元数变换,它不会改变。

属性说明

Default

1.0

四元数的W分量(实数部分)。

四元数分量通常不应该被直接操作。


Default

0.0

四元数的X分量(虚轴i部分)。

四元数分量通常不应直接操作。


Default

0.0

四元数的Y分量(虚轴j部分)。

四元数分量通常不应直接操作。


Default

0.0

四元数的Z分量(虚轴k部分)。

四元数分量通常不应该被直接操作。

方法说明

从给定的 Basis 构造一个四元数。


构造一个四元数,该四元数将执行由欧拉角指定的旋转(按照YXZ惯例:分解时,首先是Z,然后是X,最后是Y),以向量格式给出(X角,Y角,Z角)。


构造一个四元数,它将围绕给定的轴旋转指定的角度。轴必须是一个归一化的向量。


构建一个由给定值定义的四元数。


返回此四元数与 to 之间的角度。这是从一个到另一个旋转所需的角度大小。

注意:该方法的浮点错误率异常高,因此@GDScript.is_zero_approx等方法结果不可靠。


在四元数 pre_a、该向量 bpost_b 之间执行三次球面插值,按给定的 weight


返回两个四元数的点积。


返回与单位四元数所代表的旋转相对应的欧拉角(按照YXZ惯例:分解时,先Z后X,最后是Y)。返回的向量包含格式为(X角、Y角、Z角)的旋转角。


返回四元数的取逆。(译注:即xyz的值分别取反).


通过在每个分量上进行 @GDScript.is_equal_approx,如果此四元数和 quat 近似相等,则返回 true


  • bool is_normalized ( )

返回四元数是否被归一化。


返回四元数的长度。


  • float length_squared ( )

返回四元数的长度的平方。


  • Quat normalized ( )

返回四元数的副本,归一化为单位长度。


将四元数设置为绕轴旋转指定角度(以弧度为单位)的旋转。轴必须是归一化向量。


将四元数设置为由欧拉角指定的旋转(按照惯例:分解时,首先是 Z,然后是 X,最后是 Y),以向量格式给出(X 角、Y 角、Z 角)。


返回四元数 toweight值的球面线性插值的结果。

注意: 四元数必须被归一化。


weight值为权重,返回这个四元数和to之间的球面线性插值的结果,但不会检查旋转路径是否不大于90度。


返回一个由该四元数转换(相乘)的向量。