四元數用於繞多個旋轉軸旋轉幾何體和點。它們存在於四個維度中,因此具有四個部分:w、x、y 和 z。由於 x、y 和 z 相互關聯且類似,人們有時使用另一個字母來代表所有三個,v 是常見的表示。要表示它們,您應該將它們儲存在 4 維 向量 中,如下所示:
. 四元數用作 尤拉角 的替代方案。
四元數的優點[1]
因此,如果您選擇了一些您想圍繞其旋轉幾何體的單位長度 3D 向量 (
) 以及您想旋轉幾何體的度數 (
),然後建立一個旋轉四元數 (
).
通常有兩種形式來表示四元數,簡寫和長寫。在簡寫表示法中,它以 w 和 v (x、y 和 z 的組合) 表示。
這可以使用 w、x、y 和 z 在長寫表示法中表示
其中[2]:
如果四元數沒有旋轉,那麼它的值為[3]:
這 4 個分量(**w, x, y** 和 **z**)可以分解成一個實數和三個虛數
其中
,
和
是虛數,使得
。由此,您可以得出以下結論
要求逆一個四元數,只需將x、y 和z 分量乘以-1。
當將兩個四元數相乘時,順序很重要(
)。
乘積定義為[4]
|
待辦事項 新增並理解語句:(rotationQuaternion*pointQuaternion)*conjugateQuaternion 研究: [此處可見]
|
這是在兩個四元數之間逐步插值的方法,例如獲得兩個四元數之間的中點(或其他點)。
在進行 SLERP 之前,您需要理解四元數的指數表示法。
如果您有一個四元數 a,並且您使用指數表示法將其提升到 t 次方,這意味著它將按指數 t 縮放四元數內部的角度。由於這僅僅是縮放所有角度,因此這意味著四元數的大小 (
) 仍然是 1。
如果您的第一個四元數是 q,第二個四元數是 r,並且您想找到它們之間的一個點 (p),它位於從 q 到 r 的 t 百分比處,其中 0 ≤ t ≤ 1。
最終方程定義為[5]
YouTube
維基百科頁面
華夏公益教科書