Skip to content

S-四元数 ​

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

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

构造函数 ​

GameQuaternion() ​

实例化一个四元数对象

输入参数

参数必填默认值类型说明
w是numberw 实部
x是numberx 虚部
y是numbery 虚部
z是numberz 虚部

属性 ​

w ​

w 实部

## x ​

x 虚部

## y ​

y 虚部

## z ​

z 虚部

静态方法

fromAxisAngle() ​

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

输入参数

参数必填默认值类型说明
axis是GameVector3三维向量
rad是number旋转弧度

## fromEuler() ​

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

输入参数

参数必填默认值类型说明
x是numberx 虚部
y是numbery 虚部
z是numberz 虚部

## rotationBetween() ​

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

输入参数

参数必填默认值类型说明
a是GameVector3三维向量
b是GameVector3三维向量

方法 ​

set() ​

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

输入参数

参数必填默认值类型说明
w是numberw 实部
x是numberx 虚部
y是numbery 虚部
z是numberz 虚部

## copy() ​

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

输入参数

参数必填默认值类型说明
v是GameQuaternion四元数

## clone() ​

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

## rotateX() ​

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

输入参数

参数必填默认值类型说明
_rad是number旋转弧度

## rotateY() ​

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

输入参数

参数必填默认值类型说明
_rad是number旋转弧度

## rotateZ() ​

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

输入参数

参数必填默认值类型说明
_rad是number旋转弧度

## add() ​

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

输入参数

参数必填默认值类型说明
v是GameQuate

## sub() ​

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

输入参数

参数必填默认值类型说明
v是GameQuaternion四元数

## mul() ​

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

输入参数

参数必填默认值类型说明
q是GameQuaternion四元数

## inv() ​

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

## div() ​

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

参数必填默认值类型说明
q是GameQuaternion四元数

## dot() ​

四元数点积

参数必填默认值类型说明
q是GameQuaternion四元数

## slerp() ​

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

输入参数

参数必填默认值类型说明
q是GameQuaternion目标四元数
n是number(0-1)插值百分比

## angle() ​

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

输入参数

参数必填默认值类型说明
q是GameQuaternion四元数

## getAxisAngle() ​

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

输入参数

参数必填默认值类型说明
_q是GameQuaternion四元数

## mag() ​

返回该四元数的长度

## sqrMag() ​

返回四元数的平方长度

## equals() ​

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

容差值:0.000001

输入参数

参数必填默认值类型说明
v是GameQuaternion四元数

## normalize() ​

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

## toString() ​

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