用于表示三維空間中旋轉的一組四維坐標。
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)表示此四元數的字符串。