四元数和三个轴

5

给定一个四元数q和三个3D向量(vx, vy, vz),它们形成坐标轴,可以朝任意方向定位,但都相互垂直,因此形成一个3D空间。

如何检查四元数q是否旋转到与某些3D向量(vx, vy, vz)相同的方向(或相反方向)?

1个回答

4
如果q=(w,x,y,z),其中w是“标量部分”,而qv=(x,y,z)是“向量部分”,则可以使用点积计算qv与每个基向量vx、vy、vz之间的夹角。
cos(theta)=(qv·vx)/(|qv|*|vx|)
如果cos(theta)为+1,则q的旋转轴与该基向量平行。
cos(theta)=-1意味着它们是反平行的。

嗯...这完全忽略了四元数中的"w"分量,这是正确的吗? - hasdf
@qutern:没错...希望我没有误解你的问题!如果将q归一化为单位四元数,则w = cos(alpha/2)给出旋转角度alpha,而(x,y,z)是位于旋转轴上的向量。我猜你是在问如何判断旋转轴(x,y,z)是否与基向量vx、vy、vz之一平行。如果是这样,那么这个计算不需要w。 - Jim Lewis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接