我正在研究Java中的OpenGL項目,它已經到了我想在自己的代碼中創建轉換矩陣的位置,所以我可以使用它們來做世界屏幕點轉換,反之亦然。我創建了一個支持轉換的Matrix類,這一切都非常好。但是,我實際上很難找出如何創建逆變換。如何創建逆轉換矩陣
所以我的問題是這樣的:
- 給定任意仿射(4×4)變換矩陣,你如何創建逆變換矩陣?有些矩陣是不可逆的?顛倒變換矩陣有什麼限制和注意事項?
從我的研究中,我已經聽說過這樣做的各種方法,最簡單的是轉置然後否定矩陣。但是,這似乎並不實際。我聽說這種方法在某些矩陣上不起作用,甚至有些矩陣是不可逆的。
我在尋找的不僅僅是一個「插入這個方程式」的答案,因爲我實際上想知道當我倒置一個矩陣時發生了什麼。這也不包括「只使用這個庫」的答案。我將來可能會轉向矩陣庫,但現在我想自己創建它。
編輯:之前有人問,這是不是作業。這是一個個人項目。
編輯:顯然有用於計算逆策略整個列表矩陣這裏:http://en.wikipedia.org/wiki/Invertible_matrix
你是不是想打破它回落到縮放,旋轉,平移組件?我不認爲有這樣一個數學上完美的方法,但有技術拉出「合理」的組件 – nielsbot
不,據我瞭解,轉換矩陣的逆矩陣是「反轉」它的矩陣操作。所以如果我有一個矩陣是「平移(1,2,3),旋轉(45度)」,將它應用到一個點將會應用這些操作,而應用它的逆會「撤消」或「反向」這些操作。 – jpfx1342