在3d圖形學中,最常用的旋轉表示方法便是四元數和尤拉角,比起矩陣來具有節省儲存空間和方便插值的優點。本文主要歸納了兩種表達方式的轉換,計算公式採用3d笛卡爾座標系:
圖1 3d cartesian coordinate system (from wikipedia)
定義圖2 tait-bryan angles (from wikipedia)
一、四元數的定義
通過旋轉軸和繞該軸旋轉的角度可以構造乙個四元數:
其中二、尤拉角到四元數的轉換
三、四元數到尤拉角的轉換
arctan和arcsin的結果是
四、在其他座標系下使用
在其他座標系下,需根據座標軸的定義,調整一下以上公式。如在direct3d中,笛卡爾座標系的x軸變為z軸,y軸變為x軸,z軸變為y軸(無需考慮方向)。
五、示例**
四元數和尤拉角
1.尤拉角 我們這裡談論尤拉角只討論在笛卡爾座標系下,不考慮飛機座標系 我不確定正規是不是叫這個名字 那種。也就是右手定則確定的笛卡爾座標系。可以把x和y放在水平面,z軸朝上,這樣想象一下。然後,很顯然存在三種旋轉方式,也就是分別繞x,繞y和繞z旋轉。我們分別把三種旋轉稱為roll 繞x軸旋轉 pi...
matlab 角度轉四元數 尤拉角和四元數
用一句話說,尤拉角就是物體繞座標系三個座標軸 x,y,z軸 的旋轉角度。尤拉角將方位 角位移 分解為繞三個互相垂直軸的旋轉。任意三個軸和任意順序都可以,但最有意義的是使用笛卡爾座標系並按一定順序所組成的旋轉序列。最常用的約定是所謂的 heading pitch bank 約定。它的基本思想是讓物體開...
尤拉角與四元數
尤拉角是表達旋轉的最簡單的一種方式,形式上它是乙個三維向量,其值分別代表物體繞座標系三個軸 x,y,z軸 的旋轉角度。第一張 pitch,航空領域表示飛機的俯仰角。繞x軸轉動結果 第二張 yaw,表示飛機的偏航角,繞y軸轉動結果 第三張 roll,表示飛機的翻滾角,繞z軸轉動結果。四元數是由愛爾蘭數...