2012-10-30 22 views
4

我只是在使用的3D遊戲編程四元(是的,我知道矩陣,他們都OK,但我們總是需要學習一些新的東西)的挖一個深一點,因此,我們可以旋轉一些對象,如Pout = q*Pin*conjug(q),其中q是四元數,Pin是對象(假設我們使用某個框架,這個類是爲我們定義的)Vector3類,conjug(q)是q後的四元數它的共軛,最後,Pout是新的Vector3的對象,我們在旋轉初始Vector3的對象Pin後通過某個角度α(或θ,無論你喜歡)得到了哪個對象。另外,我知道有一種結合旋轉的方法,如下所示:q_final = q2*q1(這表示通過alfa1然後通過alfa2角度旋轉)。最後,點積代表了兩個四元數之間的角度,比方說,球體。這對我來說很清楚。我的問題將涉及諸如分割,加減等事情。四元,並稱,在3D模型減法和除法運算

我的問題是:有人可以告訴我,請問他們在3D編程中代表什麼(在四元數上劃分,加,減 - 運算)?他們將如何影響3D模型?

預先感謝您的答案。

附:如果你(DarenW,bensiu,Dharmendra,Uwe凱姆,珍妮斯)不能理解這個問題,請離開這個話題。有人可能會有答案。謝謝。

+0

可能重複的[四元數添加,subtructing和除法運算](HTTP://計算器.com/questions/13127684/quaternions-addition-subtructing-division-operations) –

+1

沒錯,但那個問題已經結束了,我不同意這個問題是模糊的。它提出了一個很好的關於3D圖形中非常重要的工具的問題。作爲圖形和幾何問題的頻繁貢獻者,我會問有人保護這個問題。 –

回答

11

正如你所知,四元數可以用4x4的實矩陣來識別。四元數乘法,標量乘法和加法運算可以通過這個標識來保存(見http://en.wikipedia.org/wiki/Quaternion#Matrix_representations)。因此,將兩個四元數轉換爲4x4矩陣,添加它們,並將它們轉換回來與添加它們相同。乘法的情況也是如此。

司由四元數乙四元數A的只不過是通過B的乘法逆乘以一個更這相當於阿乘以B的矩陣形式

注意的逆的矩陣形式的剛體旋轉(無剪切或縮放)由表示,單位長度爲四元數。所以你可以通過乘以單位四元數來積累旋轉。在這種情況下增加並不有用。

最後,我們在使用圖形quaterions主要的原因是在插關鍵幀(例如Eberly 1999)。也就是說,如果我們知道所需的旋轉位置,我們可以插入四元組,例如,用樣條曲線導致四元數值曲線。每個值C(t)是一個單位四元數,所以它代表一箇中間旋轉。關鍵幀插值更難具有均勻的基質,因爲不是所有4X4矩陣表示同質變換:內插處理可以增加縮放,剪切等

+0

謝謝。我很長一段時間通過不同的手冊尋找這種解釋。但其中大多數只是關於乘法。 – user1415536