慣導研究學習NO1 四元數與尤拉角之間的轉換

2021-09-24 04:39:17 字數 930 閱讀 1441

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

其中arctan和arcsin的結果是

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

#define eulerangle_type float	//定義型別

#define quaternion_type float

#define acc_type int

#define gyro_type int

#define euler_martix_type float

struct eulerangle //尤拉角結構體

struct quaternion //四元數結構體

struct acc //加速度值結構體

struct gyro //陀螺儀值結構體

struct euler_martix //尤拉(姿態)矩陣結構體

quaternion normalize(quaternion e) //四元數歸一化

quaternion multiply_l1(acc lacc) //一階演算法

euler_martix q_to_em(quaternion e) //把四元數變換成尤拉角(姿態)矩陣t

quaternion ea_to_qu(eulerangle ea) //把尤拉角變換成四元數 後來不用這個方法了,用矩陣那個了

acc coordinate_body_to_inertia(euler_martix em,acc lacc) //將體座標加速度變換到慣性座標

eulerangle em_to_eu(euler_martix lem) //從姿態矩陣中提取姿態角

void main()

}

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

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

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

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

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

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