四元數與尤拉角之間的轉換

2021-06-27 01:52:40 字數 579 閱讀 5524

感謝博主

在3d圖形學中,最常用的旋轉表示方法便是四元數和尤拉角,比起矩陣來具有節省儲存空間和方便插值的優點。本文主要歸納了兩種表達方式的轉換,計算公式採用3d笛卡爾座標系:

圖1 3d cartesian coordinate system (from wikipedia)

定義圖2 tait-bryan angles (from wikipedia)

一、四元數的定義

通過旋轉軸和繞該軸旋轉的角度可以構造乙個四元數:

其中二、尤拉角到四元數的轉換

三、四元數到尤拉角的轉換

arctan和arcsin的結果是

四、在其他座標系下使用

在其他座標系下,需根據座標軸的定義,調整一下以上公式。如在direct3d中,笛卡爾座標系的x軸變為z軸,y軸變為x軸,z軸變為y軸(無需考慮方向)。

五、示例**

demo渲染兩個模型,左邊使用尤拉角,右邊使用四元數,方向鍵up、left、right旋轉模型。

[1]

[2] ken shoemake, animating rotation with quaternion curves, 1985

四元數與尤拉角之間的轉換

在3d圖形學中,最常用的旋轉表示方法便是四元數和尤拉角,比起矩陣來具有節省儲存空間和方便插值的優點。本文主要歸納了兩種表達方式的轉換,計算公式採用3d笛卡爾座標系 圖1 3d cartesian coordinate system from wikipedia 定義圖2 tait bryan ang...

四元數與尤拉角之間的轉換

圖1 3d cartesian coordinate system from wikipedia 定義圖2 tait bryan angles from wikipedia 一 四元數的定義 通過旋轉軸和繞該軸旋轉的角度可以構造乙個四元數 其中二 尤拉角到四元數的轉換 三 四元數到尤拉角的轉換 ar...

四元數與尤拉角之間的轉換

四元數與尤拉角之間的轉換 在3d圖形學中,最常用的旋轉表示方法便是四元數和尤拉角,比起矩陣來具有節省儲存空間和方便插值的優點。本文主要歸納了兩種表達方式的 轉換,計算公式採用3d笛卡爾座標系 圖1 3d cartesian coordinate system from wikipedia 定義圖2 ...