為何Unity要使用Quaternions 作角度控制,但Inspector上卻是用EulerAngle作顯示




EulerAngle對於在三維空間裏的一個參考系,任何坐標系的取向,都可以用三個歐拉角來表現。參考系又稱為實驗室參考系,是靜止不動的。而坐標系則固定於剛體,隨著剛體的旋轉而旋轉。

由於EulerAngle是用 XYZ來代表角度,當角度到達一定值時,就會出現所謂的萬向鎖。

萬向鎖:一旦選擇±90°作為俯角,就會導致第一次旋轉和第三次旋轉等價,整個旋轉表示系統被限制在只能繞豎直軸旋轉,丟失了一個表示維度。

以上面影片來說,你就會看到飛機瞬間的抖一下,之後在下個Frame又恢復正常。

單位四元數Unit quaternion)可以用於表示三維空間裡的旋轉[1]。它與常用的另外兩種表示方式(三維正交矩陣歐拉角)是等價的,但是避免了歐拉角表示法中的萬向鎖問題。比起三維正交矩陣表示,四元數表示能夠更方便地給出旋轉的轉軸與旋轉角。

因此在電腦運算理,大多是用Quaternion來處理計算,但是在顯示上就會用EulerAngle來讓人比較好理解。

留言

熱門文章