1. 程式人生 > >3D數學基礎:矩陣的幾何解釋

3D數學基礎:矩陣的幾何解釋

一般來說,方陣能夠描述任意的線性變換。線性變換的定義在文章中已經提到。線性變換具體來說包括:旋轉、縮放、投影、映象、仿射。本文以旋轉為例講述矩陣的幾何意義。

一、基礎解釋

向量是基向量的線性組合,矩陣是基向量的集合。

世界座標系中的某一個向量使用可以使用該座標系的基向量進行表示,如下圖所示。這點是線上性代數中學習過的。

這裡寫圖片描述
在此基礎上,將矩陣解釋為基向量集合,即每一行都是一組基向量。具體看下圖。假設在世界座標系下的向量[x,y,z]與矩陣相乘,我們發現最後的結果將(x,y,z)在新的基向量(p,q,r)下進行了描述。我們可以發現其中的關鍵點:如果把矩陣的每一行解釋為座標系的基向量,那麼向量與該矩陣相乘,就相當於對向量做了一次座標轉換,從原本的世界座標系下轉換到由基向量(p,q,r)組成的新座標系下了。

這裡寫圖片描述

從這一點看,“轉換”和“乘法”確實有千絲萬縷的聯絡,這也就是為啥3D數學基礎中最常見的運算是矩陣乘法了。當然其實,矩陣就是表達座標變換的數學運算。下面我們將繼續深入的瞭解矩陣的形式。

二、側面解釋

矩陣的每一行都能解釋為轉換後的基向量,矩陣可以代表變換。

通過剛才的方式可以看出,如果將矩陣的行向量解釋為基向量,可以讓通過乘法對向量完成一次座標變換,變換到新的基向量描述的座標空間下。下面通過另外一個側面再次理解矩陣行是基向量,矩陣是基向量的組合,矩陣可以代表一種變換。

對於一個任意的3×3的矩陣,用一組基向量[1,0,0], [0,1,0], [0,0,1]乘以該任意矩陣。我們發現結果非常有意思,用[1,0,0]剛好取出了矩陣的第一行,也就是單位向量對映到新的座標空間後,其在向量基[m11,m12,m13]上的比例大小。後面兩行也有同樣的結果。這從側面驗證了“矩陣的每一行都能解釋為轉換後的基向量

”。
這裡寫圖片描述

三、矩陣與變換

在這種解釋的基礎上,那我們可以有下面兩條非常重要的推論。

  • 矩陣所代表的變換可以被形象化的解釋
  • 由已知變換去反向建立矩陣的可能

其中,第一點已經有非常經典的例子,每每說到這個點必提的一個例子。下面重溫這個例子。從二維開始然後再拓展到三維。考慮二維平面中的一個矩陣,如下所示。
這裡寫圖片描述
按照前面部分矩陣的每一行都能解釋為轉換後的基向量的思想,這個矩陣中有基向量p=[2,1]和基向量q=[-1,2]。假設變換之前的座標系就是世界座標系,世界座標系的基向量分別是x軸和y軸。而新的基向量p和q構成了一個與原座標系並不重合的新的座標系,如下圖所示。長度較長的兩個基向量是矩陣中新的基向量,長度較短的兩個基向量是原座標系中的基向量(x
軸和y軸)。
這裡寫圖片描述


對比上圖中的兩組向量基,從原參考系中的向量基(x軸和y軸)變成了後面的向量p和向量q,其實可以從圖中看出該矩陣代表的變化就是繞原點逆時針旋轉26°,並且出現一定比例的縮放。縮放的效果我們需要藉助一個圖案來看。從圖中我們看到一個梯形的圖案原本的大小和位置,經過矩陣作用之後,圖案進行了放大和旋轉。
這裡寫圖片描述
當然,你肯定很好奇,為什麼與這個基向量組成的矩陣相乘,整個圖案都放大和旋轉了呢?《3d數學基礎》提出了偏轉盒的概念,在二維平面當中,偏轉盒是由基向量作為相鄰兩邊組成的平行四邊形。原來的基向量與新的基向量對比,進行了旋轉和放大,對應的偏轉盒也進行一樣的旋轉和放縮即可。如上圖圖案所示,其實圖案就是在一個偏轉盒中,盒子進行了需旋轉和放大,帶動其中的圖片一起進行了旋轉和放大。

從2D的平面偏轉盒衍生到立體空間,偏轉盒也變成了三維立體偏轉盒,或者是由三個相互垂直的向量基組成的三腳架。仔細觀察我們還可以發現,三腳架組成的偏移盒在長寬高三個維度上發生的縮放尺度是不一樣的。高度上發生的放大是最大的,而z軸寬度上沒有變化。這是因為對應紅線框中的轉換矩陣決定的。高度y軸對應的基向量是[1.250,1.250,0],其對應的向量的模式最大的,發生的放大也就是最大的,而x軸方向的向量基模<1尺度變小;z軸基向量模等於1,對應的大小尺度不變。
這裡寫圖片描述

四、寫在最後:旋轉矩陣

旋轉是線性變換中是最常見的一種變換方式,在旋轉過程中,不發生形變,不發生尺度放縮,也沒有反射和映象。在二維當中的旋轉相對比較簡單,通過偏轉盒就可以直觀觀察。在三維空間當中通過三腳架確實也可以直觀觀察,但是涉及到繞三個軸進行旋轉,情況就變得非常複雜。以下內容參考文章1文章2。此處僅討論在三維空間中最簡單的一種旋轉,繞座標軸進行旋轉。繞任意軸和任意點進行旋轉的問題之後再做討論。

三維空間中,繞座標軸進行旋轉需要考慮的問題:

  • 旋轉正方向(左手座標系/右手座標系決定)
  • 繞軸順序(例如常見的順規Z-X-Y)