矩陣的基本概念
矩陣其實就是向量的數組.向量算的上是特殊的一維矩陣.下面說一下幾種特殊的方陣(行數和列數都相同的矩陣).
對角矩陣
如果所有的飛對角線元素都為0,那么這樣的矩陣稱之為對角矩陣.
單位矩陣
單位矩陣是一種特殊的對角矩陣.n維單位矩陣記作In,是n x n的舉證,對角線元素為1,其他元素為0.例如,3 x 3的矩陣如下所示.
(從書上抄襲過來的)單位矩陣非常的特殊,因為它是矩陣的乘法單位元.其基本性質是用任一個矩陣乘以單位矩陣,都將得到原矩陣.所有,從某種意義上講,單位矩陣對矩陣的意義就如同1對標量的意義.
矩陣的運算
-
轉置
矩陣的轉置其實就沿著矩陣的對角線翻折.(當然了,下面給給出的方陣的轉置,普通的a x b矩陣的轉置矩陣為 b x a 矩陣)
矩陣轉置的推理
- 將一個矩陣轉置之后,再次轉置一次,便會得到原來的矩陣.
- 對于任意的對角矩陣D,都有轉置矩陣DT=D,包括單位矩陣I也是如此.
-
標量和矩陣的乘法
標量和矩陣的乘法只要將標量和矩陣中的每一個元素相乘即可.數學表達式如下所示.
-
矩陣的乘法(請深究??????)
在某些情況下,兩個矩陣是允許相乘.一個 r x n的矩陣A能夠乘以一個n x c的矩陣B,結果是r x c的矩陣AB.
條件: 矩陣A的列數和矩陣B的行數必須一致.否則兩個矩陣相乘是沒有任何意義的.
矩陣的乘法計算如下: r x n的矩陣A能夠乘以n x c的矩陣B,結果是r x c的矩陣C.C中任意元素Cij等于A的第i行向量與B的第j列向量的點乘結果.正式定義如下.
我們看一下具體的示例.比如c22的計算為[a21,a22]和[b12,b22]的點乘.
可能上面的表示還是不是太讓人理解,下面我們就用一種更為簡便的方式來說一下矩陣的乘法.我們把矩陣A拿到矩陣C的左邊,把矩陣B拿到矩陣C的上面,并且使其對齊.這樣看起來是不是更容易一些呢?
當然了,在集合中我們更多的是使用2x2和2x2的兩個矩陣相乘,以及3x3和3x3的兩個矩陣相乘.我們根據公式計算即可.
矩陣的幾何解釋
與其說矩陣的幾何意義這么生澀難懂,不如說的是矩陣在幾何中到底是有什么作用呢?一般來說,方陣可以描述任意的線性變換.,也就說,在幾何當中,我們用矩陣表示幾何體的空間變換.比如我們在程序中常用的平移、旋轉、縮放等等.(沒事,這時候說的可能很生澀,看到最后你就會明白怎么回事的)
為了更好的理解矩陣的幾何意義,我們先用一個簡單的示例來說明一下.如果我們把一張圖片放入一個2D的坐標系中(為了給下面做鋪墊,向量形式為[x,y,0]),并且規定它的大小為邊長為1的正方形.向量p = [0,1,0],向量q = [1,0,0].如下圖所示.
現在我們就單獨的看圖片的右上頂點 [1,1,0] (可看做向量).
首先我們先把[1,1,0]這個向量拆分一下.如下所示.
緊接著.我們要定義一下,p,q和r定義為指向 +x,+y,+z方面的單位向量.然后用單位向量表示圖片的右上頂點 [1,1,0] .如下所示.
現在,向量[1,1,0]就被表示成p,q和r的線性變換了.向量p,q和r被稱為基向量.這里的基向量是笛卡爾坐標系.但是事實上,一個坐標系能用任意的3個基向量表示.當然了,這三個向量不在同一個平面.向量p,q和r創建一個3x3的矩陣M.如下所示.
當然了,矩陣M可不單單只有上面的一種形式,上面的只能算是一種形式,記住我們說過的,一個坐標系能用任意的3個基向量表示.接下來,我們再次研究一個向量和一個矩陣相乘.(圖形變換的開始部分),先看一下公式.
我們還是要借助一開始棟哥的那個坐標系圖形.如果矩陣M如下所示.那么圖形將不會發生任何變換.
接下來,我們就搞起圖形變換了.如果矩陣M發生了如下改變,那么圖形會有什么樣的變化呢?
在矩陣M中.向量p從[1 0 0]變換到[2 1 0],q從[0 1 0]變換到[-1 2 0],r未發生變化.然后我們圖形的右上點會再次發生縮放和旋轉的變換.
得到效果圖如下所示.
上面是2D中的變換,3D中的變化一樣類似.例如現在有向量OB[1 1 1],如下圖所示.
同時矩陣M如下所示.
結果變換之后,向量的圖像如下所示.
圖形變換的實質
看到上面我們已經對矩陣的基本使用有了了解.但是我們在實際的開發過程中遇到的圖形變換的實質到底是什么呢?我個人感覺圖形變換的實質就是變換圖形自身的坐標系.通過變換基向量來使我們的圖形發生改變.
最后還是要附上<<3D數學基礎 圖形與游戲開發>>的pdf版的傳送門來結束矩陣的相關知識.