四元数
两种记法
负四元数
单位四元数
四元数的模
四元数的共轭
四元数的逆(共轭除以模)
四元数的叉乘(结果为新的四元数)
性质:
1. 叉乘满足结合律不满足交换律:
2. 四元数叉乘的模等于模的乘积:
3. 四元数叉乘的逆等于各个四元数的逆以相反顺序相乘:
四元数的点乘(结果为标量)
四元数的差
表示a“减去”b等于d:
几何意义:从旋转到
的角位移
四元数的幂
几何意义:四元数代表一个角位移,若要得到代表1/3这个角位移的四元数,可以这样计算:
注意:凡是涉及到指数运算的代数公式,如,对四元数都不适用
四元数的插值(Slerp)
插值是四元数被广泛运用的理由之一。
旋转的方式
- 矩阵形式
- 欧拉角
- 四元数
矩阵形式
通过旋转矩阵可以将点从一个坐标系变换到另一个坐标系。
优点:
- 可以立即进行向量的旋转。
- 矩阵的形式被图形API所使用。
- 多个角位移连接。
- 矩阵的逆可以通过正交矩阵的性质容易求得。
缺点:
- 占用更多的内存。
- 难以使用。
- 可能是病态的,数据存在冗余和浮点数精度误差。
欧拉旋转
基本思想:将角位移分解为绕三个互相垂直轴的三个旋转组成的序列。
任意三个轴都能作为旋转轴,不一定是笛卡尔轴,旋转顺序也是任意的。
优点:
- 容易使用。
- 最简洁的表达方式。
- 任意三个数都是合法的。
缺点:
- 给定方位的表达方式不唯一(如万向锁)。
- 两个角度求插值困难。
四元数旋转
为点的四元数形式(
),
为旋转轴,
为旋转角,
绕
旋转
得到新的四元数
,则有
其中,
优点:
- 平滑插值。
- 快速连接和角位移求逆。
- 能和矩阵形式快速转换。
- 仅用四个数。
缺点:
- 比欧拉角内存占用大。
- 存在误差。
- 最难使用的旋转形式。