一、投影變換
由於顯示器和繪圖機只能用二維空間來表示圖形,要顯示三維圖形就要把三維坐標表示的幾何形體變換成二維坐標表示的圖形,這就是圖形的投影變換。
需要記住的一點是,計算機繪圖是產生三維物體的二維圖像。但在屏幕上繪制圖形的時候,必須在三維坐標系下來考慮畫法
在創建一個三維圖形時,不要考慮二維平面圖像。
投影變換的要素
視點(投影中心),投影平面
投影線,投影方向
投影變換的類型
透視投影:投影中心和投影面之間的距離是有限的
平行投影:投影中心和投影平面之間的距離是無限的
根據投影方向與投影平面之間的關系,平行投影分為正投影與斜投影
1、透視投影
2、平行投影
平行投影分為正投影(a)與斜投影(b)
正投影:投影方向與投影平面法向相同。常見的正投影類型有:
正視圖投影:投影平面與z軸垂直;
俯視圖投影:投影平面與y軸垂直;
側視圖投影:投影平面與x軸垂直;
等軸測投影: 投影平面的法向與每個坐標軸的夾角相等;
注意:在觀察坐標系中進行正投影很方便
因為是按Z方向的投影,物體的投影圖坐標與Z值無關
所以去掉Z變量便是三維物體的二維投影描述。
斜投影,常見的斜投影類型有:
斜等測投影:投影方向與投影平面成45度角,所以與投影平面垂直的直線段的投影與它本身的長度相等;
斜二測投影:投影方向和投影平面的夾角為arctan(2),所以與投影平面垂直的直線段的長度是它投影長度的2倍。
平行投影變換公式
3、透視投影和平行投影的區別
透視投影的投影中心和透視平面之間的距離是有限的,而平行投影的投影中心和投影平面之間的距離是無限的;
平行投影的投影線是相互平行的,因此,定義透視投影,要給出投影中心,對於平行投影,由於投影是相互平行的,只要給出投影方向就可;
透視投影的方式和人眼觀察物體的方式相同,所以透視投影的真實感更強,而平行投影的真實感相對較差,但可以用於精確測量。
將三維物體變為二維圖形的變換稱為(投影變換),其有兩種基本方式:(平行投影)、(透視投影)。
二、任意坐標系到觀察坐標系中的變換
觀察坐標系的建立
三、射影變換
做三維裁剪或消除隱藏線時,為簡化算法和減少計算量,可把一個對象的透視圖看成另一個對象的在同一投影平面上的正視圖,並要求兩個對象對應點坐標分量 的排序一致,直線對應直線,從而保證變換后的對象各部分之間的遮擋關系不會發生變化。
四、視見體到規范視見體的變換
有時為了突出圖形的一部分,只把圖形的某一部分顯示出來,這時可以定義一個三維視見體(Viewing Volume)。平行投影時一般是一個平行六面體的視見體,透視投影時一般是一個棱台似的視見體。只有視見體內的物體能被投影在顯示平面上,其他部分則不能。
在投影之前,三維空間中的物體要被三維視見體裁剪。
對視見體的裁剪和投影是三維圖形顯示過程中的重要環節,裁剪和投影的效率極大地影響圖形的處理效率。
裁剪時,需要求解直線與視見體每個面的交點方程;投影時要求解投影線與投影平面的交點方程,如果視見體每個面的方程與投影平面的方程都不是簡單形式,則計算量將會相對很大。
由第四章剪裁算法和本節后面的討論知,當視見體是規范視見體時,投影和裁剪計算都會很方便。因此,可把用戶定義的視見體變換為規范化的視見體,從而提高裁剪和投影算法的效率和減少問題的復雜性。
1、平行投影視見體的規范化
2、透視投影視見體的規范化
五、用三維規范體裁剪
Sutherland–Cohen 算法推廣到三維

梁友棟–Barsky 算法推廣到三維