用于表示三维空间中旋转的一组四维坐标。
new Quaternion(x, y, z, w)
Parameters:
x
(Number)
(default 0.0
)
X分量。
y
(Number)
(default 0.0
)
Y分量。
z
(Number)
(default 0.0
)
Z分量。
w
(Number)
(default 0.0
)
W分量。
- PackableForInterpolation
See:
Members
(static, constant) IDENTITY : Quaternion
初始化为(0.0、0.0、0.0、1.0)的不可变四元数实例。
(static) packedInterpolationLength : Number
用于以可插值形式将对象存储到数组中的元素数。
(static) packedLength : Number
用于将对象打包到数组中的元素数。
(static, constant) ZERO : Quaternion
初始化为(0.0、0.0、0.0、0.0、0.0)的不可变四元数实例。
w : Number
W分量。
-
Default Value:
0.0
x : Number
X分量。
-
Default Value:
0.0
y : Number
Y分量。
-
Default Value:
0.0
z : Number
Z分量。
-
Default Value:
0.0
Methods
(static) add(left, right, result) → {Quaternion}
计算两个四元数的分量和。
Parameters:
复制四元数实例。
Parameters:
计算提供的四元数的旋转角度。
Parameters:
计算提供的四元数的旋转轴。
Parameters:
计算内部四边形点。
这将计算四元数,以确保班曲线为c1。
Parameters:
- Quaternion#squad
See:
计算所提供四元数的共轭。
Parameters:
将压缩数组转换为适合插值的形式。
Parameters:
packedArray
(Array.<Number>)
压缩数组。
startingIndex
(Number)
(default 0
)
要转换的第一个元素的索引。
lastIndex
(Number)
(default packedArray.length
)
要转换的最后一个元素的索引。
result
(Array.<Number>)
存储结果的对象。
将所提供的四元数分量除以所提供的标量。
Parameters:
计算两个四元数的点(标量)积。
Parameters:
比较提供的四元数组件,如果相等,则返回
true
,否则返回false
。
Parameters:
比较提供的四元数组件,如果它们在提供的epsilon中,则返回
true
,否则返回false
。
Parameters:
指数四元数函数。
Parameters:
使用提供的四元数计算T处的球面线性插值或外推。此实现比
Quaternion#slerp
更快,但精确到10-6。
Parameters:
t
(Number)
沿t插入的点。
- Quaternion#slerp
See:
计算四元数之间的球面四角插值。一种比
Quaternion#squad
快但不准确的实现。
Parameters:
t
(Number)
[0,1]中用于插入的时间。
- Quaternion#squad
See:
计算表示绕轴旋转的四元数。
Parameters:
根据给定的航向、纵倾和横滚角度计算旋转。航向是围绕负Z轴的旋转。螺距是围绕负Y轴的旋转。滚动是围绕正X轴的旋转。
Parameters:
从提供的Matrix3实例计算四元数。
Parameters:
计算所提供四元数的倒数。
Parameters:
使用提供的四元数计算t处的线性插值或外推。
Parameters:
t
(Number)
沿t插入的点。
对数四元数函数。
Parameters:
计算提供的四元数的大小。
Parameters:
计算提供的四元数的大小平方。
Parameters:
计算两个四元数的乘积。
Parameters:
将提供的四元数分量乘以提供的标量。
Parameters:
否定提供的四元数。
Parameters:
计算提供的四元数的规范化形式。
Parameters:
将提供的实例存储到提供的数组中。
Parameters:
array
(Array.<Number>)
要打包的数组。
startingIndex
(Number)
(default 0
)
数组中开始打包元素的索引。
使用提供的四元数计算T处的球面线性插值或外推。
Parameters:
t
(Number)
沿t插入的点。
- Quaternion#fastSlerp
See:
计算四元数之间的球面四角插值。
Parameters:
t
(Number)
[0,1]中用于插入的时间。
Example
// 1. compute the squad interpolation between two quaternions on a curve
var s0 = bmgl.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new bmgl.Quaternion());
var s1 = bmgl.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new bmgl.Quaternion());
var q = bmgl.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new bmgl.Quaternion());
// 2. compute the squad interpolation as above but where the first quaternion is a end point.
var s1 = bmgl.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new bmgl.Quaternion());
var q = bmgl.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new bmgl.Quaternion());
- Quaternion#computeInnerQuadrangle
See:
计算两个四元数的分量差。
Parameters:
从压缩数组中检索实例。
Parameters:
array
(Array.<Number>)
压缩数组。
startingIndex
(Number)
(default 0
)
要解包的元素的起始索引。
从用
convertPackedArrayForInterpolation
转换的压缩数组中检索实例。
Parameters:
array
(Array.<Number>)
以前打包用于插值的数组。
sourceArray
(Array.<Number>)
原始压缩数组。
firstIndex
(Number)
(default 0
)
用于转换数组的FirstIndex。
lastIndex
(Number)
(default packedArray.length
)
用于转换数组的最后一个索引。
复制此四元数实例。
Parameters:
将其与提供的四元数组件进行比较,如果相等,则返回
true
,否则返回false
。
Parameters:
将其与提供的四元数组件进行比较,如果它们在提供的epsilon中,则返回
true
,否则返回false
。
Parameters:
epsilon
(Number)
用于相等性测试的epsilon。
返回以格式(x、y、z、w)表示此四元数的字符串。