Skip to content

S-四元数

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

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

构造函数

GameQuaternion()

实例化一个四元数对象

输入参数

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

属性

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()

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