1.四元数的记法
定义:绕向量v旋转角度θ
2.负四元数
负四元数相当于旋转角度加上360°,实际角位移没有发生改变,但q的四个分量都变负了,每个四元数都有两个表示方法,两者互相为负
3.单位四元数
4.四元数的模
当v为单位向量时
|q| = 1;q表示为单位四元数
一般使用单位四元数表示方位
5.四元数的共轭和逆
因为只使用单位四元数,四元数的共轭和逆相等
6.四元数的乘法(叉乘)
6.1 乘法表达式
满足结合律不满足交换律
6.2.四元数叉乘的模
|q1q2| = |q1||q2|;
四元数乘积的模等于模的乘积
6.3四元数乘积的逆
四元数的叉乘可以连接旋转序列
7.四元数的旋转
将一个标准的3D点扩展到四元数空间
v = (x,y,z);
p = [0,v] = [0,x,y,z];
设q为旋转四元数
n为旋转轴 θ为
单个旋转
多个旋转序列
8.四元数的差
'差'被定义为一个方位到另一个方位的角位移
设 给定方位a和b 角位移d为
9.四元数的点乘
对於单位向量四元数a和b,
a*b的绝对值越大两个四元数的角位移越相似
10.四元数的对数,指数
设α为旋转角度,n为单位向量
10.1四元数的对数
四元数的对数一般不是单位四元数
10.2四元数的指数
四元数的指数一般返回单位四元数
11.四元数的幂
t属于[0,1]
当t=0时
当t = 1时
当t从0变成1时,四元数q从[1,0]到q
四元数的幂可是从角位移中抽取"一部分"
注意
四元数的幂会有超出几何范围的的行为,四元数表达角位移时使用最短圆弧,不能绕圈
例如q表示绕轴旋转30°,而表示绕轴旋转60°,
预期行为中表示绕轴旋转240°而真实情况确实绕轴-80°
因此,所以
对四元数不适用。
12.四元数的插值(球面线性插值)
lerp(q1,q2,t)表达的是沿着q1和q2构成的圆弧行进的四元数
即任意一段从q1旋转到q2的路径
在两个标量之间的插值
d = a2-a1;
lerp(a1,a2,t) = a1+t*d;
理论上的四元数的线性插值
球面线性插值