二、投影變換
1、平面幾何投影
投影變換就是把三維物體投射到投影面上得到二維平面圖形。
【計算機繪圖是產生三維物體的二維圖象,但屏幕上繪制圖形的時候,必須在三維坐標系下考慮畫法。】
常用的投影法有兩大類
兩種投影法的本質區別在於【透視投影】的投影中心到投影面之間的距離是【有限的】,而【平行投影】的投影中心到投影面之間的距離是【無限的】。
(1)中心(透視)投影
透視投影是3D渲染的基本概念,也是3D程序設計的基礎。
其中的[p,q,r]能產生透視變換的效果
1、透視基本原理
因為一條直線段是由兩點確定,多邊形平面由圍城該多邊形的各頂點和邊框線段確定,而任何立體也可以看成是由它的頂點和各棱邊所構成的一個框體。也就是說,可以通過求出這些【頂點的透視投影】而獲得空間【任意立體的透視投影】。
三維世界的物體可以看作是由點集{Xi}構成的,這樣依次構造起點為E,並經過點Xi的射線Ri,這些射線與投影面P的交點集合便是三維世界在當前視點的透視圖。
投影線均通過投影中心,在投影中心【相對】投影面【確定的】情況下,空間的一個點在投影面上只存在【唯一一個】投影。
2、一點透視
先假設q≠0,p=r=0。然后對點(x,y,z)進行變換圖70
對其結果進行齊次化處理得:
A、當y=0時,有

說明處於y=0平面內的點,經過變換以后沒有發生變化
B、當y→∞時,有

說明當y→∞時,所有點的變換結果都集中到了y軸上的1/q處,即所有平行於y軸的直線將延伸相較於(0,1/q,0),該點稱為【滅點】,而像這樣形成一個滅點的透視變換稱為【一點透視】。
同理可知,當p≠0,q=r=0時,則將在x軸上的1/p處產生一個滅點,坐標為(1/p,0,0),在這種情況下,所有平行於x軸的直線將延伸交於該點。
同理,當r≠0,q=p=0時,則將在z軸上的1/r處產生一個滅點,其坐標為(0,0,1/r),這種情況下,所有平行於z軸的直線將延伸交於該點。
【一點透視投影實例】
假設視點(投影中心)在z軸上(z=-d處),投影面在xoy面上,則一點透視的步驟如下:
(1)將三維物體平移到適當位置l,m,n
(2)進行透視變換
(3)最后,為了繪制方便,向xoy平面作正投影變換,將結果變換到xoy平面上。
三維物體中任何一點(x,y,z)一點透視變換的矩陣形式:
3、多點透視
根據一點透視的原理,推廣,如果p,q,r三個元素中有兩個為非零元素時,將會生成兩個滅點,因此,得到兩點透視。
當p≠0,r不等於0,結果為:
經過齊次化處理結果為:
當x→∞時,一個滅點在x軸上的1/p處
當z→∞時,一個滅點在z軸上的1/r處
同理,當p,q,r三個元素全為非零時,結果將會產生三個滅點,從而形成三點透視,產生的三個滅點分別在x軸上的1/p處,y軸的1/q處和z軸上的1/r處。
【二點透視投影圖的生成實例】
(1)將物體平移到適當位置l,m,n
(2)將物體繞y軸旋轉θ角
(3)進行透視變換
(4)最后向xoy面做正投影,即得二點透視圖
變換矩陣形式為:

【三點透視投影圖的生成實例】
(1)將物體平移到適當位置
(2)將物體繞y軸旋轉θ角
(3)再繞x軸旋轉α角
(4)進行透視變換
(5)最后向xoy面做正投影,即得三點透視圖
變換矩陣形式為:

4、生成透視投影圖的方法
假定投影中心在z軸上(z=-d處)就是點C(0,0,-d),投影面在面xoy上,與z軸垂直,現在求空間一點p(x,y,z)的透視投影p'(x',y',z')點的坐標。
三角形ABC和A'OC、APC和AP'C相似,可知:
x'/x=y'/y=d/(d+z) ——>x'=x/(1+(z/d)),y'=y/(1+(z/d)),z'=0
——>(1)透視坐標與z值成反比,即z值越大,透視坐標值越小
(2)d的取值不同,可以對形成的透視圖有放大和縮小的功能,當值較 大時,形成的透視圖變大,反之縮小。
變換過程寫為變換矩陣形式為:
然后再乘以像投影面投影的變換矩陣,就得到了點在畫面上的投影
由上式可以看出【透視投影的特性:透視縮小效應】。
三維物體透視投影的【大小與物體到投影中心的距離成反比】,即透視縮小效應。這種效應所產生的視覺效果十分類似於照相系統和人的視覺系統。
若投影中心在無窮遠處,則1/d→0,上式變為平行投影。
【透視投影特點】
物體的投影視圖由計算投影線與觀察平面之交點而得。
透視投影生成【真實感試圖】但【不保持相關比例】。
透視投影比軸測圖更富有立體感和真實感。
【透視投影圖】是用【中心投影法】形成的,【視點在有限遠處】。
