1. 程式人生 > >(17)三維圖形幾何變換

(17)三維圖形幾何變換

三維圖形的基本變換矩陣
三維圖形幾何變換是二維圖形幾何變換的擴充套件。在三維空間中,用規範化齊次座標[x  y  z  1]表示三維點,變換原理是把齊次座標點(x, y, z, 1)通過變換矩陣變換成新的齊次座標點(x’ y’, z’, 1),即:                            

                      [x  y  z  1] T3D = [x'  y'  z'  1] 

因此,三維圖形的基本變換矩陣用4×4階矩陣表示,即:

                          

1)左上角的3*3子塊實現比例、旋轉、對稱、錯切等基本變換;
2)左下角的1*3子塊實現平移變換;
3)右上角的3*1子塊實現透視變換;
4)右下角的1*1子塊實現全比例變換。

平移變換:

立體圖形上的任意一點(x, y, z)沿X軸、Y軸、Z軸方向分別平移k、m和n後,成為新圖形上的一點(x’, y’, z’),則有:
                      x’=x+k       y’=y+m       z’=z+n
即:

       

比例變換:

1、相對於座標原點的比例變換,沿X、Y、Z軸方向的比例係數分別為a、e、j,則有:

           

當變換矩陣時,立體圖形整體放大或縮小1/S倍。

2、相對於任意點(x0, y0, z0)的比例變換,比例係數為a、e、j:

       

旋轉變換

旋轉的正方向:右手拇指指向轉軸正向,其餘四指纏繞方向便是θ角正向。

                       




繞空間任意一條直線的旋轉:
設空間一條直線段AA'作為旋轉軸,A點座標是(xA, yA, zA),A'點座標是(x'A, y'A, z'A),空間一點P(x, y, z)繞AA'軸旋轉θ角到P'(x', y', z'),即:
             [x'   y'   z'   1] = [x   y   z   1]*T

                       

其中,T 為繞任意軸的旋轉變換矩陣,它由若干個基本變換矩陣組合而成。

第1步:將點P與旋轉軸AA'一起作平移變換,使旋轉軸AA'過原點,A與原點重合,變換矩陣為:

                      

第2步:令AA'軸首先繞X軸逆時針旋轉α角,使其與XOZ平面共面,然後再繞Y軸順時針旋轉β角,使其與Z軸重合,變換矩陣為: 

                  

    其中,α和β角可通過旋轉軸AA'的兩個端點座標計算得到。

第3步:將點P繞Z軸(即AA’軸)旋轉θ角,變換矩陣為: 

                       

第4步:作第2步的逆變換,即將AA'軸旋轉回到原來的位置,變換矩陣為: 

                  

第5步:作第1步的逆變換,即將旋轉軸AA'平移回到原來的位置,變換矩陣為: 

                       

因此,繞空間任意軸的旋轉變換矩陣為:
                           T = T1*T2*T3*T4*T5

對稱變換

1、關於X軸對稱:x不變,y、z相反
2、關於Y軸對稱:y不變,x、z相反
3、關於Z軸對稱:z不變,x、y相反
4、關於座標原點對稱:x、y、z相反
5、關於XOY平面對稱:x、y不變,z相反
6、關於XOZ平面對稱:x、 z不變,y相反
7、關於YOZ平面對稱:y、 z不變,x相反 





錯切變換



由錯切變換結果看出,一個座標的變化會受另外兩個座標的影響。