四元数旋转公式的证明
对于左手坐标系,顺时针旋转有:
V’q = Q*Vq*Q*;
其中V’q为旋转后的四元数。假设旋转轴单位向量为q,要旋转的向量为v.旋转角度为θ,则四元素有:
Vq =0+v=v;
Q=cos(θ/2)+sin(θ/2)q;
Q*= cos(θ/2)-sin(θ/2)q;
带入上面公式有:
V’q=(cos(θ/2)+sin(θ/2)q)*(0+v)*(cos(θ/2)-sin(θ/2)q)
根据四元数乘法公式:
则有:
V’q =((cos(θ/2)*0- sin(θ/2)qv)+(sin(θ/2)q*0+ cos(θ/2)*V+ sin(θ/2)q×v))*(cos(θ/2)-sin(θ/2)q)
=(- sin(θ/2)qv+ cos(θ/2)V+ sin(θ/2)q×v))*(cos(θ/2)-sin(θ/2)q)
这里qv是向量点乘,q×v是向量叉乘,所以有
V’q=(- sin(θ/2)qv +cos(θ/2)V+ sin(θ/2)q×v)*(cos(θ/2)-sin(θ/2)q)
= (- sin(θ/2)qv * cos(θ/2)+(cos(θ/2)v+ sin(θ/2)q×v)sin(θ/2)q)+(sin2(θ/2)qvq + cos(θ/2)*(cos(θ/2)v + sin(θ/2)q×v)-(cos(θ/2) v + sin(θ/2)q×v)×sin(θ/2)q)
= (-sin(θ/2) cos(θ/2)qv+ sin(θ/2) cos(θ/2)qv+ sin(θ/2) q×v.q)+(sin2(θ/2)qvq+cos2(θ/2)v+ sin(θ/2) cos(θ/2)q×v- sin(θ/2) cos(θ/2)v×q- sin2(θ/2)q×v×q)
= sin2(θ/2)qvq+ cos2(θ/2)v+ 2sin(θ/2) cos(θ/2)q×v - sin2(θ/2)q×v×q
= sin2(θ/2) (qvq- q×v×q-v)+v + sinθq×v;
由于
由v可以分解为平行于q和垂直于q的两个向量v1和v2,qvq其实就是v1,以为qv的几何意义是表示v在q上投影的长度,所以再乘以单位向量q即为方向与q相同,大小为v在q上投影的长度,所以该向量为v1.而q×v×q其实是等于v2,由于q×v都垂直q,v,通过上图可知。
所以上面等式变为
= sin2(θ/2)(v1-v2-v)+v + sinθq×v
= -2sin2(θ/2)v2+v + sinθq×v
=-v2+v+cosθv2+ sinθq×v=v1+ cosθv2+ sinθq×v
cosθv2+ sinθq×v其实等于旋转后v‘对于q的垂直分量,而它的平行分量和v的平行分量相同都是v1所以v1+ cosθv2+ sinθq×v是等于旋转后的向量v’。