一、四元数的定义
通过旋转轴和绕该轴旋转的角度可以构造一个四元数:
其中
是绕旋转轴旋转的角度,
为旋转轴在x,y,z方向的分量(由此确定了旋转轴)。
二、欧拉角到四元数的转换
三、四元数到欧拉角的转换
arctan和arcsin的结果是
,这并不能覆盖所有朝向(对于
角
的取值范围已经满足),因此需要用atan2来代替arctan。
四、在其他坐标系下使用
在其他坐标系下,需根据坐标轴的定义,调整一下以上公式。如在Direct3D中,笛卡尔坐标系的X轴变为Z轴,Y轴变为X轴,Z轴变为Y轴(无需考虑方向)。
四元数与欧拉角的转化::
偏航角——Yaw,俯仰角——Pitch,翻滚角——Rool
四元数与欧拉角的如下转换公式:
Yaw= atan2f( 2 * (q0 * q1 + q2 * q3), q0q0 - q1q1 - q2q2 + q3q3 )*57.3;//yaw
Pitch= asin(-2 * (q1 * q3 + 2 * q0* q2)* 57.3; // pitch
Rool = atan2 ( 2 * (q1 * q2 + 2 * q0 * q3), q0q0 + q1q1 - q2q2 - q3q3 )* 57.3; //roll