四元数又叫做超复数,一般复数形式:z = a + b*i;
四元数的形式为:z = a + b*i + c*j + d*k; 多了两个虚部。
四元数的加、减、乘、除,运算法则与复数一致。
z* = a - b*i; z*是z的共轭复数。
z * z* = a*a +b*b;
复数的范数或模:|z| = sqrt(a*a +b*b);
|z|*|z| = a*a + b*b =z * z*;
z = a + b*i + c*j + d*k; z的共轭复数z* = a - ( b*i + c*j + d*k);
z * z* = a*a + b*b +c*c + d*d;
根据复数的性质:i*i = j*j = k*k = -1;
两个向量的X积,与第三个向量反向所以:i*j*k = -1;
四元数的范数:|z| = sqrt(a*a + b*b +c*c + d*d);
|z| * |z| = a*a + b*b +c*c + d*d = z * z*;
四元数的倒数:
z * (1/z) = 1; 两边同时乘以共轭四元数z*
z* * z * (1/z) = z*; 因为(z* * z ) * (1/z) = z*;
|z|*|z| * (1/z) = z*; 如果z为单位四元数则:|z|*|z| = 1, (1/z) = z*;
四元数乘法:p = p0 + pv, q = q0 +qv;
p*q = (p0*q0 - (pv*qv)) + (p0*qv + q0*pv + pv x qv);
Vq变换前的向量,V'q变换后的向量,q为单位四元数
右手坐标系:
V'q = q* * Vq * q;
V'q = q * Vq * q*;
左手坐标系:
V'q = q * Vq * q*;
V'q = q* * Vq * q;
q定义了旋转轴和要绕该旋转轴旋转的角度。
q = cos(x/2) + sin(x/2)*Vq;
实部:cos(x/2) 虚部:sin(x/2)*Vq
Vq为旋转轴,x为旋转的角度
四元数在图形学中的主要作用是:旋转向量 和 对弧形曲线平滑插值
四元数的4D性使得它比标准的角度旋转和矩阵旋转更平滑,但速度慢些
四元数的几何意义为:后面的虚部是3D空间的一个向量,