在用矩陣表述變換與齊次坐標(biāo)一文中我們了解了旋轉(zhuǎn)、平移的矩陣表述。在這里,我們試著總結(jié)一下仿射空間中其他幾種映射的矩陣表述。
為了方便觀察,在這里我們僅討論二維空間中的基本變換。對于每一個變換,我們采取方程組,坐標(biāo)系圖,矩陣分別描述,便于理解。
一、旋轉(zhuǎn)
旋轉(zhuǎn)在幾何和線性代數(shù)中是描述剛體圍繞一個固定點(diǎn)的運(yùn)動的在平面或空間中的變換。
需要注意,在這里我們只討論比較常用的“坐標(biāo)系保持不動,向量繞坐標(biāo)軸旋轉(zhuǎn)”觀點(diǎn)。
對于給定點(diǎn),計(jì)算其繞
軸逆時針旋轉(zhuǎn)
后新的坐標(biāo)
。如下圖所示:
由于涉及到角度,我們可以把笛卡爾坐標(biāo)系轉(zhuǎn)換為極坐標(biāo)系,設(shè)為極半徑。則
點(diǎn)坐標(biāo)為
相應(yīng)的,點(diǎn)坐標(biāo)為
由方程組(1)、(2)可知,關(guān)于
,
的方程為:
用4x4矩陣可以表述為:
即,三維旋轉(zhuǎn)變換矩陣為:
同樣的方法,我們可以得出下面幾種常見的旋轉(zhuǎn)變換矩陣:
二、縮放
縮放在歐式空間中是描述延某一方向或所有方向按照一定縮放因子放大或者縮小物體的線性變換。
我們通常討論物體延一個或多個坐標(biāo)軸方向的縮放,每一個坐標(biāo)軸方向都有其單獨(dú)的縮放因子。
當(dāng)所有坐標(biāo)軸方向的縮放因子一樣時,此時的縮放叫做均勻縮放或位似變換。均勻縮放的結(jié)果在幾何意義上相似于原始物體。
當(dāng)各坐標(biāo)軸方向的縮放因子不同時,縮放后結(jié)果的形狀可能發(fā)生變化,此時的縮放被叫做方向縮放。
對于給定物體中某一點(diǎn),計(jì)算其均勻縮放
(
時為放大,
時為縮小)后的結(jié)果
。
在這里,我們討論的是三維空間的均勻縮放。但是為了便于觀察,我使用了二維平面的均勻縮放的圖示。
如圖所示,我們已知點(diǎn)的坐標(biāo),則
坐標(biāo)可表示為
用4x4矩陣表示為
即,三維縮放變換矩陣為:
同樣的方法,我們可以得出下面幾種常見的縮放變換矩陣(縮放因子):
三、平移
平移在仿射空間中指物體延同一方向移動相同距離的變換。
平移是一種等距同構(gòu)的變換,它可以被視為某一向量施加于物體每一點(diǎn)的結(jié)果。即,設(shè)是已知向量,
為空間中一點(diǎn),則平移
對同一物體的多次連續(xù)平移,其結(jié)果可用一次平移表示,它符合向量的加法法則。即
對于給定點(diǎn),計(jì)算施加向量
的平移結(jié)果
。
同樣,為了便于觀察,我們使用二維空間的平移圖示。如下圖:
如圖所示,我們已知點(diǎn)的坐標(biāo),則點(diǎn)
坐標(biāo)可表示為
用4x4矩陣表示為
即平移變換矩陣為
四、反射
反射在仿射空間中指把物體變換成它的鏡像的映射。
需要注意,這里的反射與渲染階段的光線“反射”不是同一個概念。這里是指數(shù)學(xué)意義上的反射。
對于給定點(diǎn),計(jì)算其針對
平面的鏡像結(jié)果。如下圖所示:
由上圖可以很容易得到,關(guān)于
,
,
的方程組
用4x4矩陣表示為
即針對平面
的反射映射矩陣為
同樣可以得出以下一些常見的反射變換矩陣
五、投影
投影是指一個從向量空間
映射到它自身的線性變換。
投影是生活中“平行投影”概念的形式化和一般化。例如,在現(xiàn)實(shí)生活中,陽光照射物體在地面留下的影子。我們假設(shè)陽光是沿著同一方向(平行且垂直于地面的)照射物體,地面是嚴(yán)格的平面。那么,這就是投影最直觀的例子。
對于給定點(diǎn),計(jì)算其在平面
上的投影點(diǎn)
。如下圖:
根據(jù)上圖,可得關(guān)于,,的方程組:
用4x4矩陣表述為
即某點(diǎn)在平面上的投影變換矩陣為
類似的,我們可以得到如下常見的投影矩陣
六、錯切
錯切是在某方向上,按照一定的比例(錯切因子)對圖形的每個點(diǎn)平移得到的平面圖形。移動的距離與該點(diǎn)到平行于該方向的某一直線的有向距離成正比。
如上圖所示,直線是直線
在平行于X軸方向上繞Z軸的錯切。
此時,點(diǎn)經(jīng)過錯切的結(jié)果點(diǎn)
關(guān)于
,
,
的方程組為
用4x4矩陣表述為
即水平方向(平行于X軸方向)上的錯切變換矩陣為
相應(yīng)的,我們可以算出一下幾種常見的錯切變換矩陣(為錯切因子):
七、總結(jié)
上面我們已經(jīng)了解了反射空間幾種基本變換的矩陣表述。下面我們來重新整理一下,首先看如下適用于列向量的4x4矩陣。
我們可以很容易地發(fā)現(xiàn),對于矩陣A
元素與線性變換有關(guān);
元素與仿射變換有關(guān)。
那么,元素有什么作用呢?
其實(shí),這三個元素與透視投影變換有關(guān)。用矩陣表述變換是不是非常神奇?