1)平移變換
從一個位置到另一個位置的變換可以用平移矩陣T表示,該矩陣通過向量t = ( tx, ty, tz)對實體進行平移操作。
其實還有另外一種形式(以左手坐標系為基準):
第一種形式(以右手坐標系為基準的)進行變換時將T與需要變換的點或向量A(列向量)相乘,即TA。
第二種形式(以左手坐標系為基準)將需要變換的點或向量(行向量)與T相乘,即AT。
平移矩陣的逆矩陣為T-1( t ) =T( -t ),也就是對向量t進行了置負操作。
2)旋轉(zhuǎn)變換
旋轉(zhuǎn)矩陣Rx(Θ)、Ry(Θ)、Rz(Θ)分別表示將物體繞x,y,z軸進行旋轉(zhuǎn)。
注意,旋轉(zhuǎn)矩陣表示物體是繞著指定軸(軸的指向朝外面)按順時針方向旋轉(zhuǎn)的,但這個形式的旋轉(zhuǎn)矩陣是以右手坐標系為基準的。
左手坐標系的為:
旋轉(zhuǎn)矩陣的推導可以看這里:http://blog.csdn.net/zsq306650083/article/details/8773996
任意軸旋轉(zhuǎn)任意角度矩陣:
對于這個3x3矩陣來說,其對角元素之和是一個與坐標軸無關(guān)的常數(shù),稱其為跡(Trace):tr(R)=1+2cosΘ
矩陣R的逆矩陣就是其轉(zhuǎn)置矩陣,還有其他獲取其逆矩陣的方法,即將Θ取負(繞著同一坐標軸朝相反方向旋轉(zhuǎn))。旋轉(zhuǎn)矩陣的行列式總是等于1.
3)縮放矩陣
sx, sy, sz分別表示沿著XYZ軸進行縮放的縮放比例。S矩陣的逆矩陣為S-1( s ) = S ( 1/sx, 1/sy,1/sz)。
如果對縮放矩陣s的一個或者三個分量置負,就會產(chǎn)生一個反射矩陣(鏡像矩陣),如果其中兩個縮放因子為-1,那么將旋轉(zhuǎn)180度,當發(fā)現(xiàn)變換矩陣是反射矩陣時,需要進行特殊處理,例如,一個三角形的頂點序列以逆時針方向排列時,在經(jīng)過反射矩陣變換后,對得到一個順時針方向排列的三角形頂點序列,這將導致不正確的光照效果和背面裁減。判斷給點矩陣是否為反射形式,需要計算該矩陣左上部3x3矩陣行列式的值,如果為負,那么該矩陣就為反射矩陣。
4)錯切變換
錯切矩陣有6種基本形式,分別表示為Hxy(s)、Hxz(s)、Hyx(s)、Hyz(s)、Hzx(s)、Hzy(s)。第一個下標表示由錯切矩陣改變的坐標,第二個下標表示進行錯切操作的坐標。
通過下標可以找到參數(shù)s所在的位置。如本例中x=0,z=2。
錯切矩陣的逆矩陣可以通過取負來取得 ( Hij)-1( s ) = Hij( -s )
5) 剛體變換
剛體變換用于剛性物體的變換,只改變物體的方向和位置,不改變形狀??梢詫傮w矩陣X寫成一個平移矩陣和一個旋轉(zhuǎn)矩陣的級聯(lián):
X的逆矩陣可以這樣求得:X-1= ( T ( t ) R )-1= R-1T( t )-1 = RTT( -t ).
6) 法線變換
注意,法線必須通過用變換幾何圖形的矩陣的逆矩陣的轉(zhuǎn)置矩陣進行變換N = ( M-1)T
實際應用中,如果變換矩陣是正交的(如旋轉(zhuǎn)矩陣),就沒必要計算它的逆矩陣,因為正交矩陣的逆矩陣就是轉(zhuǎn)置矩陣,兩個轉(zhuǎn)置矩陣相互抵消,相乘的結(jié)果還是原來的旋轉(zhuǎn)矩陣。此外,還有平移矩陣,由于平移不改變向量的方向,所以可以進行任意次數(shù)的平移而不對法線產(chǎn)生任何影響。另外,如果使用一個或多個一致性縮放矩陣進行變換,也不需要計算相應的逆矩陣,因為這種縮放只改變法線長度,不影響其方向。這種矩陣進行變換之后需要對法線進行歸一化(規(guī)范化)。
-
變換
+關(guān)注
關(guān)注
0文章
56瀏覽量
21230 -
矩陣
+關(guān)注
關(guān)注
0文章
423瀏覽量
34545
原文標題:圖形變換之基本矩陣變換
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論