2010-08-19 119 views
4

給定一個四元數q和三個形成座標軸的3D向量(vx,vy,vz),它們可以在任意方向上取向,但是都相互垂直,從而形成一個三維空間。四元數和三軸

如何檢查四元數q是否與某些3D矢量(vx,vy,vz)旋轉到相同方向(或相反方向)?

回答

3

如果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(θ)= -1意味着它們是反平行的。

+0

嗯...這完全忽略了四元數的「w」分量。它是否正確? – hasdf 2010-08-19 20:02:45

+0

@qutern:是的......我希望我沒有誤解你的問題!如果將q歸一化爲單位四元數,則w = cos(alpha/2)給出旋轉角α,而(x,y,z)是位於旋轉軸上的向量。我假設你在問如何找出旋轉軸(x,y,z)是否與基向量vx,vy,vz中的一個平行。如果是這樣,那麼計算不需要w。 – 2010-08-19 20:22:04