Skip to content

四元数

四元数是一种用于描述物体在三维空间中旋转的量。四元数由四个分量组成:x, y, zw。虽然比起欧拉角、矩阵等方式,四元数略显晦涩,但由于四元数的运算更加高效、造成的数值误差更低,在 3D 游戏领域发挥着很大作用。

更多有关的数学知识可以观看3Blue1Brown相关视频

构造函数

GameQuaternion()

实例化一个四元数对象

输入参数

参数必填默认值类型说明
wnumberw实部
xnumberx虚部
ynumbery虚部
znumberz虚部

定义于 #L13263

属性

w

w实部


x

x虚部


y

y虚部


z

z虚部


静态方法

fromAxisAngle()

根据旋转轴和旋转弧度计算四元数

输入参数

参数必填默认值类型说明
axisGameVector3三维向量
radnumber旋转弧度

fromEuler()

根据欧拉角信息计算四元数,旋转顺序为 YZX,即先绕Y旋转,再绕Z,最后绕X旋转。

输入参数

参数必填默认值类型说明
xnumberx虚部
ynumbery虚部
znumberz虚部

rotationBetween()

从两个向量计算并创建一个四元数。

输入参数

参数必填默认值类型说明
aGameVector3三维向量
bGameVector3三维向量

方法

set()

设置四元数值,返回当前四元数

输入参数

参数必填默认值类型说明
wnumberw实部
xnumberx虚部
ynumbery虚部
znumberz虚部

copy()

将四元数复制到当前四元数中,返回当前四元数

输入参数

参数必填默认值类型说明
vGameQuaternion四元数

clone()

克隆当前四元数,返回新的四元数


rotateX()

四元数X虚部旋转,返回新的四元数

输入参数

参数必填默认值类型说明
_radnumber旋转弧度

rotateY()

四元数Y虚部旋转,返回新的四元数

输入参数

参数必填默认值类型说明
_radnumber旋转弧度

rotateZ()

四元数Z虚部旋转,返回新的四元数

输入参数

参数必填默认值类型说明
_radnumber旋转弧度

add()

四元数加法,返回新的四元数

输入参数

参数必填默认值类型说明
vGameQuate

sub()

四元数减法,返回新的四元数

输入参数

参数必填默认值类型说明
vGameQuaternion四元数

mul()

四元数乘法,返回新的四元数

输入参数

参数必填默认值类型说明
qGameQuaternion四元数

inv()

四元数转置,返回新的四元数


div()

四元数除法,返回新的四元数

参数必填默认值类型说明
qGameQuaternion四元数

dot()

四元数点积

参数必填默认值类型说明
qGameQuaternion四元数

slerp()

四元数插值,返回新的四元数

输入参数

参数必填默认值类型说明
qGameQuaternion目标四元数
nnumber(0-1)插值百分比

angle()

返回两个四元数之间的角度

输入参数

参数必填默认值类型说明
qGameQuaternion四元数

getAxisAngle()

返回四元数的旋转弧度和旋转轴

输入参数

参数必填默认值类型说明
_qGameQuaternion四元数

mag()

返回该四元数的长度


sqrMag()

返回四元数的平方长度


equals()

检测两四元数的值在容差内是否近似相等

容差值:0.000001

输入参数

参数必填默认值类型说明
vGameQuaternion四元数

normalize()

四元数归一化,返回新的四元数


toString()

返回四元数格式化的字符串