第4章二維圖形變換_第1頁
第4章二維圖形變換_第2頁
第4章二維圖形變換_第3頁
第4章二維圖形變換_第4頁
第4章二維圖形變換_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

4.1窗口視圖變換1.窗口和視圖區(qū)用戶坐標(biāo)系(worldcoordinatesystem,簡(jiǎn)稱WC):用戶用來定義設(shè)計(jì)對(duì)象的坐標(biāo)系,是實(shí)數(shù)型的二維空間。設(shè)備坐標(biāo)系(devicecoordinatesystem,簡(jiǎn)稱DC):計(jì)算機(jī)圖形系統(tǒng)的工作空間,是自然數(shù)型的二維空間。窗口區(qū)(window):在用戶坐標(biāo)系中任意的一個(gè)子區(qū)域。一般為矩形區(qū)域,可以用其左下角點(diǎn)和右上角點(diǎn)的坐標(biāo)來表示。視圖區(qū)(viewport):設(shè)備坐標(biāo)系的一個(gè)子空間。對(duì)于顯示器而言,顯示屏幕是設(shè)備輸出圖形的最大區(qū)域,任何小于或等于屏幕域的區(qū)域都可定義為視圖區(qū)。一般也為矩形區(qū)域。二維圖形的顯示流程圖2.窗口到視圖區(qū)的變換窗口區(qū)與視圖區(qū)間的映射關(guān)系:窗口區(qū)中的任一點(diǎn)(xw,yw)

與視圖區(qū)中的任一點(diǎn)(xv,yv)存在如下對(duì)應(yīng)關(guān)系:(4-1)(4-2)XwOwWxlWxrYwWybWyt窗口(xw,yw)YuXuOuVxlVxrVybVyt視圖區(qū)(xv,yv)窗口與視圖區(qū)的對(duì)應(yīng)關(guān)系所有的變換均基于點(diǎn)的變換。例如,一條線段的變換只要考慮它的兩個(gè)端點(diǎn)的變換就行了。一個(gè)變換是一個(gè)單一的數(shù)學(xué)實(shí)體,能夠用一個(gè)矩陣描述和標(biāo)識(shí)。采用向量、矩陣和齊次坐標(biāo)的形式可以十分方便的描述圖形的變換。1

齊次坐標(biāo)為了能用矩陣的形式統(tǒng)一描述圖形變換,在圖形學(xué)中常采用齊次坐標(biāo)的形式來描述空間的點(diǎn)。在n維空間中的一個(gè)問題,在n+1維空間中相應(yīng)地也有一個(gè)問題,而在n+1維空間中卻常常比n維空間中較易獲得結(jié)果。二維點(diǎn)(x,y)的齊次表示是(hx,hy,h),這里h是任何一個(gè)非零因子,有時(shí)叫做比例因子。齊次點(diǎn)(a,b,c)被投射回復(fù)到二維時(shí)簡(jiǎn)單地就是(a/c,b/c),由比例因子c去除。4.2.0

幾何變換的基本描述在計(jì)算機(jī)中處理一個(gè)三維空間的“無窮遠(yuǎn)點(diǎn)”是困難的,但是可以容易地處理一個(gè)四維齊次空間的解析點(diǎn),例如可以用向量:(1000) 表示x軸方向無窮遠(yuǎn)點(diǎn)(0100) 表示y軸方向無窮遠(yuǎn)點(diǎn)(0010) 表示z軸方向無窮遠(yuǎn)點(diǎn)(0001) 表示坐標(biāo)原點(diǎn)這4個(gè)向量將構(gòu)成四維齊次空間的單位矩陣1

齊次坐標(biāo)2

齊次坐標(biāo)變換矩陣透視變換比例變換旋轉(zhuǎn)、錯(cuò)切等平移變換齊次變換矩陣提供一個(gè)三維空間中包括平移、旋轉(zhuǎn)、透視、投影、反射、錯(cuò)切和比例等變換在內(nèi)的統(tǒng)一表達(dá)式,使得物體的變換可在統(tǒng)一的矩陣形式下進(jìn)行。3矩陣級(jí)聯(lián)一個(gè)變換是由一個(gè)單一的數(shù)學(xué)實(shí)體——矩陣來描述和標(biāo)識(shí)。兩個(gè)變換的結(jié)合用矩陣的級(jí)聯(lián)(相乘)而產(chǎn)生一個(gè)具有兩者功效的單一變換。例如變換T是平移,而變換R是旋轉(zhuǎn),則變換的結(jié)合允許決定一個(gè)變換A=TR,其功效是先平移然后旋轉(zhuǎn)變換。

4.2.1基本二維幾何變換二維圖形幾何變換有五種基本變換形式:平移、旋轉(zhuǎn)、縮放、對(duì)稱、錯(cuò)切。有兩種不同的變換方法:一種是圖形不動(dòng),而坐標(biāo)系變動(dòng),即變換前與變換后的圖形是針對(duì)不同坐標(biāo)系而言的,稱之為坐標(biāo)模式變換;另一種是坐標(biāo)系不動(dòng),而圖形改變,即變換前與變換后的坐標(biāo)值是針對(duì)同一坐標(biāo)系而言的,稱之為圖形模式變換。實(shí)際應(yīng)用中,后一種圖形變換更有實(shí)際意義,下面討論的圖形變換是屬于后一種變換。1二維平移變換平移變換是指將圖形從一個(gè)坐標(biāo)位置移到另一個(gè)坐標(biāo)位置的重定位。已知一點(diǎn)的原始坐標(biāo)是P(x,y),加上一個(gè)沿X,Y方向的平移量tx和ty,平移此點(diǎn)到新坐標(biāo)P(x’,y’),則新坐標(biāo)的表達(dá)式為:如果對(duì)一圖形的每個(gè)點(diǎn)都進(jìn)行上述變換,即可得到該圖形的平移變換。實(shí)際上,線段是通過對(duì)其兩端點(diǎn)進(jìn)行平移變換,多邊形的平移是平移每個(gè)頂點(diǎn)的坐標(biāo)位置,曲線可以通過平移定義曲線的坐標(biāo)點(diǎn)位置,用平移過的坐標(biāo)點(diǎn)重構(gòu)曲線路徑來實(shí)現(xiàn)。平移變換只改變圖形的位置,不改變圖形的大小和形狀。下圖是一平移變換的例子??梢杂镁仃囆问絹肀硎径S平移變換方程。圖形變換通常使用齊次坐標(biāo)矩陣來表示。平移變換方程的齊次坐標(biāo)矩陣表示式為:其中稱為變換矩陣。2二維旋轉(zhuǎn)變換若圖形中的坐標(biāo)點(diǎn)P(x,y)繞坐標(biāo)原點(diǎn)逆時(shí)針旋轉(zhuǎn)一個(gè)角度θ,則新坐標(biāo)點(diǎn)P(x’,y’)的表達(dá)式為:公式的推導(dǎo)可參考右圖變換方程寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣

上面是點(diǎn)P(x,y)以坐標(biāo)原點(diǎn)為中心的旋轉(zhuǎn)變換,還可以任意點(diǎn)P0(x0,y0)為中心做旋轉(zhuǎn)變換。其變換公式為:其中變換矩陣:旋轉(zhuǎn)變換只能改變圖形的方位,而圖形的大小和形狀不變。旋轉(zhuǎn)變換的幾何表示見下圖。3二維縮放變換

一個(gè)圖形中的坐標(biāo)點(diǎn)P(x,y),若在X軸方向相對(duì)于坐標(biāo)原點(diǎn)變化一個(gè)比例系數(shù)sx,在Y軸方向相對(duì)于坐標(biāo)原點(diǎn)變化一個(gè)比例系數(shù)sy,則新坐標(biāo)點(diǎn)P(x’,y’)的表達(dá)式為:這一變換稱為相對(duì)于坐標(biāo)原點(diǎn)的縮放變換,sx和sy分別表示點(diǎn)P(x,y)沿X軸方向和Y軸方向相對(duì)坐標(biāo)原點(diǎn)的縮放系數(shù)。縮放變換改變圖形的大小。變換方程寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:縮放系數(shù)sx和sy可賦予任何正數(shù)值。當(dāng)值小于1時(shí)縮小圖形,值大于1則放大圖形。當(dāng)sx和sy被賦予相同值時(shí),就產(chǎn)生保持圖形相對(duì)比例一致的變換,sx和sy值不等時(shí)產(chǎn)生X軸方向和Y軸方向大小不等的比例變換。sx和sy都指定為1時(shí),圖形大小不改變。實(shí)際上,相對(duì)于坐標(biāo)原點(diǎn)圖形的比例變換,相當(dāng)于每一點(diǎn)相對(duì)于坐標(biāo)原點(diǎn)的變換,因此,它不但改變圖形的大小,而且改變圖形的位置。下圖是一圖形比例變換的例子:頂點(diǎn)在原點(diǎn)的放大變換頂點(diǎn)不在原點(diǎn)的放大變換可以通過選擇一個(gè)在變換后不改變位置的固定點(diǎn)P0(x0,y0),來控制圖形變換的位置。例對(duì)于多邊形圖形,固定點(diǎn)的坐標(biāo)(x0,y0)可以選擇圖形的某個(gè)頂點(diǎn)、圖形幾何中心點(diǎn)或任何其它位置,這樣變換后固定點(diǎn)坐標(biāo)不改變,多邊形每個(gè)頂點(diǎn)相對(duì)于固定點(diǎn)縮放。對(duì)于坐標(biāo)為P(x,y)的頂點(diǎn),相對(duì)于固定點(diǎn)P0(x0,y0)變換后的坐標(biāo)P(x,y)可計(jì)算為:寫成齊次坐標(biāo)矩陣形式為:4.對(duì)稱變換對(duì)稱變換是產(chǎn)生圖形鏡象的一種變換,也稱鏡象或反射變換。將圖形繞對(duì)稱軸旋轉(zhuǎn)就可以生成鏡象圖形。(1)對(duì)稱于X軸當(dāng)變換對(duì)稱于X軸時(shí),則坐標(biāo)點(diǎn)P(x,y)經(jīng)對(duì)稱變換后,新坐標(biāo)點(diǎn)P’(x’,y’)的表達(dá)式為:寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:對(duì)稱X軸變換的幾何表示見下圖(2)對(duì)稱于Y軸當(dāng)變換對(duì)稱于Y軸時(shí),則坐標(biāo)點(diǎn)P(x,y)經(jīng)對(duì)稱變換后,新坐標(biāo)點(diǎn)P’(x’,y’)的表達(dá)式為:變換方程寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:對(duì)稱Y軸變換的幾何表示見下圖(3)對(duì)稱于原點(diǎn)當(dāng)圖形對(duì)X軸和Y軸都進(jìn)行對(duì)稱變換時(shí),即為對(duì)于坐標(biāo)原點(diǎn)的對(duì)稱變換。變換前后點(diǎn)坐標(biāo)之間的關(guān)系為:寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:對(duì)稱原點(diǎn)變換的幾何表示見下圖5.錯(cuò)切變換錯(cuò)切變換是圖形位于某坐標(biāo)軸上的點(diǎn)不動(dòng),其它點(diǎn)沿平行于此軸方向移動(dòng)變形的變換。常用的錯(cuò)切變換有兩種:改變x坐標(biāo)值和改變y坐標(biāo)值。(1)沿X軸方向關(guān)于Y的錯(cuò)切變換前和變換后y坐標(biāo)不變,而x坐標(biāo)根據(jù)y坐標(biāo)值呈線性變化。變換前后點(diǎn)的坐標(biāo)之間的關(guān)系為:式中c為錯(cuò)切系數(shù)。若c>0,則沿+X方向錯(cuò)切,若c<0,則沿-X方向錯(cuò)切。矩形ABCD經(jīng)錯(cuò)切變換后變?yōu)锳’B’C’D’的結(jié)果。變換方程寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:(2)沿Y軸方向關(guān)于X的錯(cuò)切變換前和變換后x坐標(biāo)不變,而y坐標(biāo)根據(jù)x坐標(biāo)值呈線性變化。變換前后點(diǎn)的坐標(biāo)之間的關(guān)系為:

式中d為錯(cuò)切系數(shù)。若d>0,則沿+Y方向錯(cuò)切,若d<0,則沿-Y方向錯(cuò)切。右圖說明了矩形ABCD經(jīng)錯(cuò)切變換后結(jié)果為A’B’C’D’。變換方程寫成齊次坐標(biāo)矩陣形式為:其中變換矩陣:除了沿X軸方向和沿Y軸方向的錯(cuò)切變換外,還可以使用沿平行于X軸方向的軸線或沿平行于Y軸方向的軸線以及任一軸線的錯(cuò)切變換。對(duì)于這些變換,可以通過先平移、旋轉(zhuǎn)軸線,轉(zhuǎn)化為沿X軸方向或沿Y軸方向的錯(cuò)切變換。

錯(cuò)切變換不僅改變圖形的形狀,而且改變圖形的方位,還可能使圖形發(fā)生畸變。上面討論的五種變換(平移、旋轉(zhuǎn)、縮放、對(duì)稱、錯(cuò)切)給出的都是點(diǎn)變換的公式,圖形的變換實(shí)際上都可以通過點(diǎn)變換完成。例如直線段的變換可通過變換兩個(gè)端點(diǎn),并重畫新端點(diǎn)間的線而得到。多邊形的變換可通過變換每個(gè)頂點(diǎn),并用新的頂點(diǎn)來生成多邊形而實(shí)現(xiàn)。曲線的變換可通過變換控制點(diǎn)并重畫線來完成。符合形式:的坐標(biāo)變換稱為二維仿射變換。變換的坐標(biāo)x’和y’都是原始坐標(biāo)x和y的線性函數(shù)。參數(shù)aij是由變換類型確定的常數(shù)。仿射變換具有平行線轉(zhuǎn)換成平行線和有限點(diǎn)映射到有限點(diǎn)的一般特性。

4.2.2復(fù)合變換(級(jí)聯(lián))所謂二維圖形的復(fù)合變換,就是在XY平面內(nèi),對(duì)一個(gè)已定義的圖形,按一定順序進(jìn)行多次變換而得到新的圖形。一般把上面討論的幾種變換稱為基本的圖形變換,絕大部分復(fù)雜的圖形變換都可以通過這些基本變換的適當(dāng)組合來實(shí)現(xiàn)。利用前面所提供的矩陣表示,就可通過計(jì)算單個(gè)變換的矩陣乘積,將任意順序變換的矩陣建立為復(fù)合變換矩陣。1.相對(duì)于任意點(diǎn)(x0,y0)的比例變換對(duì)任意點(diǎn)比例變換的步驟:(1)平移變換(2)相對(duì)于原點(diǎn)的比例變換(3)平移變換

當(dāng)(x0,y0)為圖形重心的坐標(biāo)時(shí),這種變換實(shí)現(xiàn)的是相對(duì)于重心的比例變換。

令任意點(diǎn)比例變換示意圖平移平移比例則有2.繞任意點(diǎn)(x0,y0)的旋轉(zhuǎn)變換

繞任意點(diǎn)旋轉(zhuǎn)變換的步驟:(1)平移變換(2)對(duì)圖形繞原點(diǎn)進(jìn)行旋轉(zhuǎn)變換(3)平移變換

θ(x2,y2)(x3,y3)(x0,y0)θOxy(x1,y1)(x4,y4)相對(duì)于任意點(diǎn)(x0,y0)的旋轉(zhuǎn)變換任意點(diǎn)旋轉(zhuǎn)變換示意圖平移平移旋轉(zhuǎn)令則有例:已知三角形各頂點(diǎn)的坐標(biāo)A(1,2)、B(5,2)、C(3,5),相對(duì)直線Y=4做對(duì)稱變換后到達(dá)A’、B’、C’。試計(jì)算A’、B’、C’的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣)解:(1)將坐標(biāo)系原點(diǎn)平移至P1(0,4)點(diǎn),變換矩陣為:(2)關(guān)于X軸做對(duì)稱變換,變換矩陣為:(3)將坐標(biāo)系平移回原處

,變換矩陣為:(4)復(fù)合變換矩陣:T=TA×TB×TC=(5)求變換后的三角形ABC各頂點(diǎn)的坐標(biāo)A’、B’、C’A’:B’:C’:仿射變換基本理論仿射變換是一種線性變換,有下面兩種性質(zhì):“線性”:直線變換后還是直線。“關(guān)聯(lián)性”:共線三點(diǎn)間的距離的分比不變,平行線還是平行線。仿射變換可以通過一系列原子變換的復(fù)合來實(shí)現(xiàn):

平移(Translation)、縮放(Scale)翻轉(zhuǎn)(Flip)、旋轉(zhuǎn)(Rotation)錯(cuò)切(Shear)等。仿射變換(二維線性變換)的最一般形式為: u=a1x+b1y+c1

v=a2x+b2y+c2

令 u=0和 v=0即可得到兩條直線

L1:a1x+b1y+c1=0 L2:a2x+b2y+c2=0直線(直線段/向量)由其規(guī)范化的標(biāo)準(zhǔn)式方程:ax+by+c=0定義,其中a2+b2=1圖形變換的幾何化表示

由于平面上任兩條相交有向直線均可構(gòu)成新的坐標(biāo)系統(tǒng)UV,這樣u=a1x+b1y+c1v=a2x+b2y+c2

又可視為將坐標(biāo)軸UV上的點(diǎn)全部相應(yīng)地變換到坐標(biāo)軸X和Y上。于是,可將直線L1設(shè)為V軸,直線L2設(shè)為U軸,構(gòu)成新的坐標(biāo)系。圖形變換的幾何化表示

這兩個(gè)坐標(biāo)系間的坐標(biāo)變換公式可由直線方程系數(shù)構(gòu)成的齊次變換矩陣形式表示出來:4.4平面曲線圖4.4.1正葉線 a>0,n=2,3,4,5,…4.4.2正葉線蝴蝶結(jié) intxc=280,yc=280; floatsita,e,pi=3.14159; for(sita=0;sita<=2*pi;sita+=pi/360) { e=100*(1+0.25*sin(4*sita)); e=e*(1+sin(8*sita)); x1=xc+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論