2013-03-30 63 views
-1

我正在學習關於遊戲開發的教程。它是碰撞檢測的一部分。我明白它的作用,但不知道它是如何做到的。我希望能夠理解正在發生的事情。有人可以解釋嗎?如何理解這個矩陣數學

Matrix matrix1To2 = matrix1 * Matrix.Invert(matrix2); 
Vector2 pos1 = new Vector2(x1, y1); 
Vector2 pos2 = Vector2.Transform(pos1, mat1To2); 

該教程說這是基於第一個圖像的x/y值找到圖像相交的位置。我對矩陣是什麼以及如何工作有基本的瞭解,但不知道這是如何工作的。

+0

這僅僅是應用矩陣變換爲矢量。這就是我們可以通過這段代碼告訴你的。 –

+1

這對於SO來說是無關緊要的,可能是所有的stackexchange站點。如果你正在進行遊戲開發,你必須瞭解基本的矩陣/向量數學(這是一個不能令人滿意的話題,在半頁的SO回放中涵蓋)。 –

+0

我不是要求一個完整的深入教程。只是對正在發生的事情的基本概述。就像第一個矩陣乘以第二個矩陣的倒數一樣。通過乘法矩陣變換該點可以做到這一點。 – Emrys90

回答

0

一個幾乎相同的問題是問這裏回答:http://xboxforums.create.msdn.com/forums/p/79167/479452.aspx

+0

謝謝!這正是我想知道的。 – Emrys90

+0

你能回答多一個問題嗎?還有一件事我還不明白。這是我的理解,矩陣存儲轉換完成原始圖像。如果通過矩陣轉換矢量將會將其轉換爲局部座標而不是世界空間座標,那麼它會變得更有意義嗎? – Emrys90

+0

這取決於輸入矢量的座標空間。例如,如果一個特定的矩陣要應用平移變換,那麼它會將局部矢量變換爲翻譯後的局部矢量,並將世界空間矢量變換爲翻譯後的世界空間矢量。如果你知道你使用的矩陣代表從本地空間到世界空間所需的變換,那麼你知道局部空間中的輸入向量將導致世界空間中的輸出向量。 –