给定一个四元数q和三个形成坐标轴的三维矢量(vx,vy,vz),它们可以在任意方向上定向,但都是相互垂直的,从而形成一个三维空间。
如何检查四元数q是否旋转到与某些3D矢量(vx,vy,vz)相同的方向(或相反方向)?
答案 0 :(得分:3)
如果q =(w,x,y,z),其中w是“标量部分”,而qv =(x,y,z)是“矢量部分”, 然后你可以计算qv和每个基矢量vx,vy,vz之间的角度 使用点积。
cos(theta)=(qv dot vx)/(| qv | * | vx |)
如果cos(theta)为+1,则q的旋转轴与该基矢量平行。
cos(theta)= -1意味着它们是反平行的。