計算機圖形學之矩陣變換

十六呀發表於2019-03-21

重點是理解矩陣的含義:矩陣其實是一種座標系的轉換

理解矩陣的幾何功能:

  1. 矩陣是一種線性變換(線段變換後仍是線段,並且原點不會改變)
  2. 矩陣是一種對映,對映可以是一對一,也可以是一對多
  3. 矩陣是一種空間變換,每一種矩陣都是有本身的幾何意義,而不是單純的數字組合

理解矩陣的形式含義(矩陣在左,向量在右):

  1. 方陣滿秩,是進行當前空間的座標變換,不會進行維度的升高和降低
  2. M×N(M>N),這種矩陣是一種升維矩陣,幾何意義如3×2,就如同把一個平面進行一個方向維度的延展(當秩為2時),變成一個三維的空間,當然之前空間中的點(x,y)在提升維度的過程中在三維空間中還是一個平面分佈,只是多了一個值全相等的第三個維度的值而已
  3. M×N(M<N),這是一種降維矩陣,幾何意義如2×3(當秩為2時),是把三維的向量進行一個維度的壓縮,擠壓成一個平面,這個時候當然會出現很多個點壓縮到一個二維座標的情況
  4. 方陣不滿秩,其實和之前是一樣的,不滿秩就說明這個維度是虛的,沒什麼用,如果秩是一的話就是擠壓成一條線。

一.平移矩陣

1.1二維平移矩陣

形式:平移矩陣的形式是什麼樣的呢。

一定是一個滿秩的矩陣,因為我們並不會進行維度的變換。 座標軸的方向和長度是不變的,因為矩陣運算的本質是改變的參考系的X,Y。
尋找矩陣:

那麼什麼樣的矩陣能夠使得一個點進行平移操作呢,因為平移操作並不會改變參考系XY的方向和單位向量的長度,所以實際上,在當前的維度中,我們並不可能做到,為什麼呢?因為我們之前說過,矩陣的線性變換並不會改變原點的位置,矩陣是預設原點就是(0,0),在矩陣中填充任何的值都沒辦法改變這個約定熟成的決定。那麼怎麼做到呢,我們利用更高一維的矩陣,也就是三維矩陣進行操作,其實就是在更高的維度當中,解決我們的原點平移問題。

計算機圖形學之矩陣變換
計算機圖形學之矩陣變換
計算機圖形學之矩陣變換
在這裡,需要說明的是,如果我們使用的是左矩陣右向量的形式,那麼構成我們全新的座標系的向量應當是矩陣中的列。我們在增加了一個新的維度,(dx,dy,1),dx,dy就是我們要平移的數量,而增加一個1,是因為要保持秩是3,畢竟我們是從更高一層的維度來轉移我們的座標原點的。

從幾何意義來說,平移矩陣其實就是增加一個並不正交的Z軸(dx,dy,1)來進行一個座標軸的重新定義,繼而將座標轉換位置。

這裡需要注意的是,點V=(x,y,1),並不是再是我們二維座標上的點,而是以P的列向量為基所構成的三維空間上的點,只是說我們把二維的點變為V=(x,y,1)然後經過對應矩陣P的線性變換,最終得到平移點的位置。

這個過程可能有些難以理解,但是又是那麼的巧妙和精確。我們所構造的矩陣P,是通過新空間中基的列向量來構成的,其中的列向量中每一個座標值對應的數值,其實都是以我們原有的基x=(1,0),y=(0,1)來決定的。P這個矩陣,是一種線性的變換,是把用它座標系中表示的點的位置座標,來對映到原先我們確定它的時用的基的空間裡。

這其實就是一種投影運算,對V的每個座標值進行投影。

而p的逆矩陣,其實就是把我們的座標對映到P的座標中的運算。

計算機圖形學之矩陣變換

計算機圖形學之矩陣變換

1.2三維平移矩陣

當我們理解了二維的平移矩陣,那麼,其實三維的矩陣也是一樣的原理

計算機圖形學之矩陣變換

二.旋轉矩陣

旋轉矩陣的基礎含義就是繞原點的旋轉。

2.1二維旋轉矩陣

形式:旋轉矩陣的形式是什麼樣的呢。

一定是滿秩的,因為沒有進行維度變換 座標軸的長度應該是不變的,因為沒有進行放縮操作,但是角度應該是要變的。
尋找矩陣:

假設我們有點v=(x,y),座標軸是標準的座標軸,角度是為,是與x軸正方向的夾角。

首先,我們已經知道了一些知識,那就是尋找新的座標軸的基,且基的長度仍是1.那麼

計算機圖形學之矩陣變換

計算機圖形學之矩陣變換

計算機圖形學之矩陣變換
這就是我們所需要的旋轉矩陣

2.2三維旋轉矩陣

對於三維來說是差不多的,不過因為旋轉軸的不同,旋轉矩陣的形狀也是不同的

計算機圖形學之矩陣變換

計算機圖形學之矩陣變換
可以結構成這麼一段話,對於標準座標系而言,要將一個點V移動到V1(在這裡V和V1的表示都是標準座標系下的),那麼用新基構成的矩陣P變換V,得到V1。這是因為,V在標準座標系中的座標和V1在P的座標系下的座標是一樣的。

所以,矩陣變換的並不是V,而是V1。因為P的作用是把本身的座標裡的點變成標準座標系的點的座標,所以變換的其實不是標準座標系裡的V,而是自身的V1,因為他們兩者的值是相同的,會有很強的誤導性,但是並不是說他們空間中的絕對位置是相同的。僅僅因為參考系的變換,導致了他們的值相同。

三.放縮矩陣

放縮矩陣其實就很簡單,圖形的放縮其實就是我們本身的座標軸的基的放縮

計算機圖形學之矩陣變換

四.投影矩陣

將點v,投影到一個平面A,投影方向是B的法向量n。

形式:正交投影矩陣的形式是什麼樣的呢。

應該是高維矩陣,因為其中包含平移操作 應該是一個不滿秩的矩陣,畢竟我們的座標都放到了一個面上 因為是正交投影,所以我們壓縮的,其實就是沿著B法向量上的點 尋找矩陣:我們設V=(vx,vy,vz),A有一點a=(ax,ay,az),面的法向量N=(Nx,Ny,Nz)

  1. 首先確立平面上的座標系,通過點A,和法向量N建立座標系(X*,Y*,Z*).
  2. 其中Z是法向量N的方向,轉向是沒有關係的。
  3. 如果這麼就完了並不能完成平移操作,僅僅完成的是座標系方向的轉向,位置上還需要平移
  4. 所以需要原點到平面的距離向量L
  5. 建立最後的投影矩陣 注意:我們這裡所需要的,是應該求逆矩陣,當我們所需要的是投影座標表示而不是在原先座標系表示的時候

相關文章