變換矩陣

變換矩陣

變換矩陣是數學線性代數中的一個概念。線上性代數中,線性變換能夠用矩陣表示。

變換矩陣是數學線性代數中的一個概念。
線上性代數中,線性變換能夠用矩陣表示。如果T是一個把R映射到R的線性變換,且x是一個具有n個元素的列向量 ,
那么我們把m×n的矩陣A,稱為T的變換矩陣.

套用

任意線性變換都可以用矩陣表示為易於計算的一致形式,並且多個變換也可以很容易地通過矩陣的相乘連線在一起。
線性變換不是唯一可以用矩陣表示的變換。R 維的仿射變換與透視投影都可以用齊次坐標表示為 RP 維(即 n+1 維的真實投影空間)的線性變換。因此,在三維計算機圖形學中大量使用著 4x4 的矩陣變換

尋找變換矩陣

如果已經有一個函式型的線性變換 T(x),那么通過 T 對標準基每個向量進行簡單變換,然後將結果插入矩陣的列中,這樣很容易就可以確定確定變換矩陣 A,即

例如,函式 T(x) = 5x 是線性變換,通過上面的過程得到(假設 n = 2 )

在二維圖形中的套用示例

最為常用的幾何變換都是線性變換,這包括鏇轉、縮放、切變、反射以及正投影。在二維空間中,線性變換可以用 2×2 的變換矩陣表示。

鏇轉

繞原點逆時針鏇轉 θ 度角的變換公式是 x' = xcosθ − ysinθ 與 y' = xsinθ + ycosθ,用矩陣表示為:

縮放

縮放公式為 與 ,用矩陣表示為:

切變

切變有兩種可能的形式,平行於 x 軸的切變為 x' = x + ky 與 y' = y,矩陣表示為:


平行於 y 軸的切變為 x' = x 與 y' = y + kx,矩陣表示為:
反射

為了沿經過原點的直線反射向量,假設 (ux, uy) 為直線方向的單位向量。變換矩陣為:


按照不經過原點的直線的反射是仿射變換,而不是線性變換。正投影

為了將向量正投影到一條經過原點的直線,假設 (ux, uy) 是直線方向的單位向量,變換矩陣為:

同反射一樣,正投影到一條不經過原點的直線的變換是仿射變換,而不是線性變換。
平行投影也是線性變換,也可以用矩陣表示。但是透視投影不是線性變換,必須用齊次坐標表示。

組合變換與逆變換

用矩陣表示線性變換的一個主要動力就是可以很容易地進行組合變換以及逆變換。
組合可以通過矩陣乘法來完成。如果 AB 是兩個線性變換,那么對向量 x 先進行 A 變換,然後進行 B 變換的過程為:

換句話說,先 A' 後 B 變換的組合等同於兩個矩陣乘積的變換。需要注意的是先 AB 表示為 BA 而不是 AB
能夠通過兩個矩陣相乘將兩個變換組合在一起這樣的能力就使得可以通過逆矩陣進行變換的逆變換。A 表示 A 的逆變換。
變換矩陣並不都是可逆的,但通常都可以進行直觀的解釋。在上一節中,幾乎所有的變換都是可逆的。只要 sx 與 sy 都不為零,那么縮放變換也是可逆的。另外,正投影永遠是不可逆的。

其它類型的變換

仿射變換

為了表示仿射變換,需要使用齊次坐標,即用三向量 (x, y, 1) 表示二向量,對於高維來說也是如此。按照這種方法,就可以用矩陣乘法表示變換。 x' = x + tx; y' = y + ty 變為
在矩陣中增加一列與一行,除右下角的元素為 1 外其它部分填充為 0,通過這種方法,所有的線性變換都可以轉換為仿射變換。例如,上面的鏇轉矩陣變為
通過這種方法,使用與前面一樣的矩陣乘積可以將各種變換無縫地集成到一起。
當使用仿射變換時,其次坐標向量 w 從來不變,這樣可以把它當作為 1。但是,透視投影中並不是這樣。

透視投影

三維計算機圖形學中另外一種重要的變換是透視投影。與平行投影沿著平行線將物體投影到圖像平面上不同,透視投影按照從投影中心這一點發出的直線將物體投影到圖像平面。這就意味著距離投影中心越遠投影越小,距離越近投影越大。
最簡單的透視投影將投影中心作為坐標原點,z = 1 作為圖像平面,這樣投影變換為 x' = x / z; y' = y / z,用齊次坐標表示為:
(這個乘法的計算結果是 (xc,yc,zc,wc) = (x,y,z,z)。)
在進行乘法計算之後,通常齊次元素 wc 並不為 1,所以為了映射回真實平面需要進行齊次除法,即每個元素都除以 wc:
更加複雜的透視投影可以是與鏇轉、縮放、平移、切變等組合在一起對圖像進行變換。

相關搜尋

熱門詞條

聯絡我們