2009-02-12 117 views
1

我有一個類,它包含一個用於縮放和平移的4x4矩陣。我將如何實現這個類的旋轉方法?我應該將輪換作爲一個單獨的矩陣來實現嗎?旋轉和OpenGL矩陣

回答

3

您可以將當前矩陣與旋轉矩陣相乘。看看http://en.wikipedia.org/wiki/Rotation_matrix

+0

啊,所以我只會產生一個旋轉矩陣,並與目前的矩陣乘法而不是存儲2?我怎麼會產生一個旋轉矩陣,雖然給了一個向量xyz旋轉三維? – 2009-02-12 12:25:08

+0

@Nowell,你是什麼意思?根據您的結構,創建一個旋轉矩陣並將其乘以源矩陣。或者,您可以將乘法直接應用於矩陣。 – strager 2009-02-12 13:24:38

1

有一個網站,我每次使用時,我需要查找3D轉換的細節,稱爲http://www.euclideanspace.com。矩陣旋轉中的特定頁面可以找到here

編輯:圍繞給定座標軸旋轉,請查看axis & angle表示法。此頁面還鏈接到如何將一個表示法翻譯爲另一個表示法的說明。

如果您需要圍繞多個軸旋轉,只需乘以相應的矩陣。

1

回答問題的後半部分時,單個4x4矩陣完全有能力進行縮放,平移和旋轉。所以,除非你對可以處理的4x4矩陣有特別的限制,否則一個4x4就可以滿足你的要求。

至於關於任意矢量的旋轉(如您在評論中所要求的),請查看yabcok鏈接到的維基百科文章中的「旋轉關於任意矢量」部分。你會想通過用零填充4x4矩陣,除了4,4(縮放)位置,它應該是一個。然後使用矩陣乘法與縮放/平移4x4生成一個新的4x4矩陣。