用于表示三維空間中旋轉(zhuǎn)的一組四維坐標(biāo)。
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)的不可變四元數(shù)實例。
(static) packedInterpolationLength : Number
用于以可插值形式將對象存儲到數(shù)組中的元素數(shù)。
(static) packedLength : Number
用于將對象打包到數(shù)組中的元素數(shù)。
(static, constant) ZERO : Quaternion
初始化為(0.0、0.0、0.0、0.0、0.0)的不可變四元數(shù)實例。
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}
計算兩個四元數(shù)的分量和。
Parameters:
復(fù)制四元數(shù)實例。
Parameters:
計算提供的四元數(shù)的旋轉(zhuǎn)角度。
Parameters:
計算提供的四元數(shù)的旋轉(zhuǎn)軸。
Parameters:
計算內(nèi)部四邊形點。
這將計算四元數(shù),以確保班曲線為c1。
Parameters:
- Quaternion#squad
See:
計算所提供四元數(shù)的共軛。
Parameters:
將壓縮數(shù)組轉(zhuǎn)換為適合插值的形式。
Parameters:
packedArray
(Array.<Number>)
壓縮數(shù)組。
startingIndex
(Number)
(default 0
)
要轉(zhuǎn)換的第一個元素的索引。
lastIndex
(Number)
(default packedArray.length
)
要轉(zhuǎn)換的最后一個元素的索引。
result
(Array.<Number>)
存儲結(jié)果的對象。
將所提供的四元數(shù)分量除以所提供的標(biāo)量。
Parameters:
scalar
(Number)
要除以的標(biāo)量。
計算兩個四元數(shù)的點(標(biāo)量)積。
Parameters:
比較提供的四元數(shù)組件,如果相等,則返回
true
,否則返回false
。
Parameters:
比較提供的四元數(shù)組件,如果它們在提供的epsilon中,則返回
true
,否則返回false
。
Parameters:
指數(shù)四元數(shù)函數(shù)。
Parameters:
使用提供的四元數(shù)計算T處的球面線性插值或外推。此實現(xiàn)比
Quaternion#slerp
更快,但精確到10-6。
Parameters:
t
(Number)
沿t插入的點。
- Quaternion#slerp
See:
計算四元數(shù)之間的球面四角插值。一種比
Quaternion#squad
快但不準(zhǔn)確的實現(xiàn)。
Parameters:
t
(Number)
[0,1]中用于插入的時間。
- Quaternion#squad
See:
計算表示繞軸旋轉(zhuǎn)的四元數(shù)。
Parameters:
根據(jù)給定的航向、縱傾和橫滾角度計算旋轉(zhuǎn)。航向是圍繞負(fù)Z軸的旋轉(zhuǎn)。螺距是圍繞負(fù)Y軸的旋轉(zhuǎn)。滾動是圍繞正X軸的旋轉(zhuǎn)。
Parameters:
從提供的Matrix3實例計算四元數(shù)。
Parameters:
計算所提供四元數(shù)的倒數(shù)。
Parameters:
使用提供的四元數(shù)計算t處的線性插值或外推。
Parameters:
t
(Number)
沿t插入的點。
對數(shù)四元數(shù)函數(shù)。
Parameters:
計算提供的四元數(shù)的大小。
Parameters:
計算提供的四元數(shù)的大小平方。
Parameters:
計算兩個四元數(shù)的乘積。
Parameters:
將提供的四元數(shù)分量乘以提供的標(biāo)量。
Parameters:
scalar
(Number)
要與之相乘的標(biāo)量。
否定提供的四元數(shù)。
Parameters:
計算提供的四元數(shù)的規(guī)范化形式。
Parameters:
將提供的實例存儲到提供的數(shù)組中。
Parameters:
array
(Array.<Number>)
要打包的數(shù)組。
startingIndex
(Number)
(default 0
)
數(shù)組中開始打包元素的索引。
使用提供的四元數(shù)計算T處的球面線性插值或外推。
Parameters:
t
(Number)
沿t插入的點。
- Quaternion#fastSlerp
See:
計算四元數(shù)之間的球面四角插值。
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:
計算兩個四元數(shù)的分量差。
Parameters:
從壓縮數(shù)組中檢索實例。
Parameters:
array
(Array.<Number>)
壓縮數(shù)組。
startingIndex
(Number)
(default 0
)
要解包的元素的起始索引。
從用
convertPackedArrayForInterpolation
轉(zhuǎn)換的壓縮數(shù)組中檢索實例。
Parameters:
array
(Array.<Number>)
以前打包用于插值的數(shù)組。
sourceArray
(Array.<Number>)
原始壓縮數(shù)組。
firstIndex
(Number)
(default 0
)
用于轉(zhuǎn)換數(shù)組的FirstIndex。
lastIndex
(Number)
(default packedArray.length
)
用于轉(zhuǎn)換數(shù)組的最后一個索引。
復(fù)制此四元數(shù)實例。
Parameters:
將其與提供的四元數(shù)組件進(jìn)行比較,如果相等,則返回
true
,否則返回false
。
Parameters:
將其與提供的四元數(shù)組件進(jìn)行比較,如果它們在提供的epsilon中,則返回
true
,否則返回false
。
Parameters:
epsilon
(Number)
用于相等性測試的epsilon。
返回以格式(x、y、z、w)表示此四元數(shù)的字符串。