版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第4章章 二維變換及二維觀察二維變換及二維觀察24.5 4.5 二維圖形變換二維圖形變換 一、圖形變換基本概念一、圖形變換基本概念 1 1、定義、定義 即對(duì)原圖形進(jìn)行平移、旋轉(zhuǎn)、縮小或放大等變換操作即對(duì)原圖形進(jìn)行平移、旋轉(zhuǎn)、縮小或放大等變換操作。 在計(jì)算機(jī)圖形顯示或繪圖輸入過(guò)程中,往往需要對(duì)圖在計(jì)算機(jī)圖形顯示或繪圖輸入過(guò)程中,往往需要對(duì)圖形指定部分的形狀、尺寸大小及顯示方向進(jìn)行修改,形指定部分的形狀、尺寸大小及顯示方向進(jìn)行修改,以達(dá)到改變整幅圖形的目的,這就需要對(duì)圖形進(jìn)行平以達(dá)到改變整幅圖形的目的,這就需要對(duì)圖形進(jìn)行平移、旋轉(zhuǎn)、縮小或放大等變換操作。因此,圖形變換移、旋轉(zhuǎn)、縮小或放大等變換
2、操作。因此,圖形變換是計(jì)算機(jī)繪圖基本技術(shù)之一,利用它可以用一些很簡(jiǎn)是計(jì)算機(jī)繪圖基本技術(shù)之一,利用它可以用一些很簡(jiǎn)單的圖組合成相當(dāng)復(fù)雜的圖,可以把用戶坐標(biāo)系下的單的圖組合成相當(dāng)復(fù)雜的圖,可以把用戶坐標(biāo)系下的圖形變換到設(shè)備坐標(biāo)系下。利用圖形變換還可以實(shí)現(xiàn)圖形變換到設(shè)備坐標(biāo)系下。利用圖形變換還可以實(shí)現(xiàn)二維圖形和三維圖形之間轉(zhuǎn)換,甚至還可以把靜態(tài)圖二維圖形和三維圖形之間轉(zhuǎn)換,甚至還可以把靜態(tài)圖形變?yōu)閯?dòng)態(tài)圖形,從而實(shí)現(xiàn)景物畫面的動(dòng)態(tài)顯示,下形變?yōu)閯?dòng)態(tài)圖形,從而實(shí)現(xiàn)景物畫面的動(dòng)態(tài)顯示,下面主要討論二維圖形變換。面主要討論二維圖形變換。 3 2 2、圖形變換分類、圖形變換分類 圖形變換有兩種形式:圖形變換有
3、兩種形式: 視象變換視象變換: :圖形不動(dòng),而坐標(biāo)系變動(dòng),即變換圖形不動(dòng),而坐標(biāo)系變動(dòng),即變換前與變換后的圖形是針對(duì)不同的坐標(biāo)而言的,前與變換后的圖形是針對(duì)不同的坐標(biāo)而言的,也稱之為坐標(biāo)模式也稱之為坐標(biāo)模式 幾何變換幾何變換: :另一種是坐標(biāo)系不動(dòng),而圖形改變,另一種是坐標(biāo)系不動(dòng),而圖形改變,即變換前與變換后的坐標(biāo)值是針對(duì)同一坐標(biāo)系即變換前與變換后的坐標(biāo)值是針對(duì)同一坐標(biāo)系而言的,也稱之為圖形模式變換,而言的,也稱之為圖形模式變換, 實(shí)際應(yīng)用中后種圖形變換更具有實(shí)際意義,實(shí)際應(yīng)用中后種圖形變換更具有實(shí)際意義,我們討論的圖形變換主要是屬于后一種變換我們討論的圖形變換主要是屬于后一種變換 4二、二維
4、圖形幾何變換的基本原理二、二維圖形幾何變換的基本原理 1 1幾何變換幾何變換 在計(jì)算機(jī)繪圖應(yīng)用中,經(jīng)常要實(shí)現(xiàn)從一個(gè)幾何圖在計(jì)算機(jī)繪圖應(yīng)用中,經(jīng)常要實(shí)現(xiàn)從一個(gè)幾何圖形到另一個(gè)幾何圖形的變換。例如,將圖沿某一方向形到另一個(gè)幾何圖形的變換。例如,將圖沿某一方向平移一段距離;將圖形旋轉(zhuǎn)一定的角度;或?qū)D形放平移一段距離;將圖形旋轉(zhuǎn)一定的角度;或?qū)D形放大;反之把圖形縮小等等。這些圖形變換的效果雖然大;反之把圖形縮小等等。這些圖形變換的效果雖然各不相同,本質(zhì)上卻都是依照一定的規(guī)則,將一個(gè)幾各不相同,本質(zhì)上卻都是依照一定的規(guī)則,將一個(gè)幾何圖形的點(diǎn)都變?yōu)榱硪粋€(gè)幾何圖形的確定的點(diǎn),這種何圖形的點(diǎn)都變?yōu)榱硪粋€(gè)幾
5、何圖形的確定的點(diǎn),這種變換過(guò)程稱為幾何變換。變換過(guò)程稱為幾何變換。 幾何變換的規(guī)則是可以用函數(shù)來(lái)表示的。由于一幾何變換的規(guī)則是可以用函數(shù)來(lái)表示的。由于一個(gè)二維圖形可以分解成點(diǎn)、直線、曲線。把曲線離散個(gè)二維圖形可以分解成點(diǎn)、直線、曲線。把曲線離散化,它可以用一串短直線段來(lái)逼近;而直線段可以是化,它可以用一串短直線段來(lái)逼近;而直線段可以是一系列點(diǎn)的集合,因此點(diǎn)是構(gòu)成圖形的基本幾何元素一系列點(diǎn)的集合,因此點(diǎn)是構(gòu)成圖形的基本幾何元素之一。我們先來(lái)討論點(diǎn)的幾何變換的函數(shù)表示。之一。我們先來(lái)討論點(diǎn)的幾何變換的函數(shù)表示。 5 二維平面圖形的幾何變換是指在不改變圖形連線次二維平面圖形的幾何變換是指在不改變圖形
6、連線次序的情況下,對(duì)一個(gè)平面點(diǎn)集進(jìn)行的線性變換。序的情況下,對(duì)一個(gè)平面點(diǎn)集進(jìn)行的線性變換。 二維平面圖形的輪廓線,不論是由直線段組成二維平面圖形的輪廓線,不論是由直線段組成(多邊形),還是由曲線段組成,都可以用它的輪廓(多邊形),還是由曲線段組成,都可以用它的輪廓線上順序排列的平面點(diǎn)集來(lái)描述,例如長(zhǎng)方形線上順序排列的平面點(diǎn)集來(lái)描述,例如長(zhǎng)方形ABCDABCD,是由四個(gè)角點(diǎn)是由四個(gè)角點(diǎn)A A(x x1 1,y y1 1),),B B(x x2 2,y y2 2),),C C(x x3 3,y y3 3),),D D(x x4 4,y y4 4)順序連接而成,為了使畫出的圖形是閉合順序連接而成,為
7、了使畫出的圖形是閉合的,首尾兩點(diǎn)必須連接。的,首尾兩點(diǎn)必須連接。6 二維平面圖形變換的結(jié)果有兩種,一是使圖形產(chǎn)生位二維平面圖形變換的結(jié)果有兩種,一是使圖形產(chǎn)生位置的改變;另一種是使圖形產(chǎn)生變形,例如把圖形放大。置的改變;另一種是使圖形產(chǎn)生變形,例如把圖形放大。 對(duì)二維圖形進(jìn)行幾何變形有五種基本變換形式,它們是:對(duì)二維圖形進(jìn)行幾何變形有五種基本變換形式,它們是:平移、旋轉(zhuǎn)、比例、對(duì)稱和錯(cuò)切。平移、旋轉(zhuǎn)、比例、對(duì)稱和錯(cuò)切。7 2 2基本幾何變換的解析表示基本幾何變換的解析表示 (l l)平移變換平移變換 平面上一點(diǎn)平面上一點(diǎn)P P(x x,y y),),如果在如果在X X軸方向的平移增量為軸方向的
8、平移增量為t tx x,在在Y Y軸方向平移增量為軸方向平移增量為t ty y時(shí),則平移后所得新點(diǎn)時(shí),則平移后所得新點(diǎn)P P( (x x ,y y)坐標(biāo)表達(dá)式為:坐標(biāo)表達(dá)式為: x x = = x x + + t tx x, y y = = y y + + t ty y 我們把這一變換稱為平移變換。我們把這一變換稱為平移變換。 如果對(duì)一圖形的每個(gè)點(diǎn)都進(jìn)行上述變換,即可得到該圖如果對(duì)一圖形的每個(gè)點(diǎn)都進(jìn)行上述變換,即可得到該圖形的平移變換。實(shí)際上,直線的平移變換,可以通過(guò)對(duì)其形的平移變換。實(shí)際上,直線的平移變換,可以通過(guò)對(duì)其定義端點(diǎn)的平移變換來(lái)實(shí)現(xiàn),對(duì)于其它類型的變換這種處定義端點(diǎn)的平移變換來(lái)實(shí)現(xiàn)
9、,對(duì)于其它類型的變換這種處理方法也是可行的。理方法也是可行的。 平移變換只改變圖形的位置,不改變圖形的大小和形狀平移變換只改變圖形的位置,不改變圖形的大小和形狀tytx8(2 2)比例變換)比例變換 一個(gè)圖形中的坐標(biāo)點(diǎn)(一個(gè)圖形中的坐標(biāo)點(diǎn)(x x,y y),),若在若在X X軸方向有一個(gè)比軸方向有一個(gè)比例系數(shù)例系數(shù)S Sx x,在在Y Y軸方向有一個(gè)比例系數(shù)軸方向有一個(gè)比例系數(shù)S Sy y,則該圖形的新則該圖形的新坐標(biāo)點(diǎn)(坐標(biāo)點(diǎn)(x x ,y y )的表達(dá)式為的表達(dá)式為 x x = = xSxSx x y y = = ySySy y; 這一變換稱為比例變換。這一變換稱為比例變換。 比例變換不僅
10、改變圖形的位置,而且改變圖形的大小比例變換不僅改變圖形的位置,而且改變圖形的大小 9(3 3)旋轉(zhuǎn)變換)旋轉(zhuǎn)變換 若圖形中的坐標(biāo)點(diǎn)(若圖形中的坐標(biāo)點(diǎn)(x x,y y)繞坐標(biāo)原點(diǎn)逆時(shí)針旋轉(zhuǎn)一繞坐標(biāo)原點(diǎn)逆時(shí)針旋轉(zhuǎn)一個(gè)角度個(gè)角度 ,則該點(diǎn)變換后的新坐標(biāo)(則該點(diǎn)變換后的新坐標(biāo)(x x,y y)與交換與交換前的坐標(biāo)前的坐標(biāo)( (x x,y y) )的關(guān)系為:的關(guān)系為: x x = = xcosxcos - - ysinysiny y = = xsinxsin + + ycosycos 旋轉(zhuǎn)變換只能改變圖形的方位,而圖形的大小和形狀旋轉(zhuǎn)變換只能改變圖形的方位,而圖形的大小和形狀不變,不變, 10(4 4)
11、對(duì)稱變換)對(duì)稱變換如果經(jīng)過(guò)變換后所得到的圖形與變換前的圖形關(guān)于如果經(jīng)過(guò)變換后所得到的圖形與變換前的圖形關(guān)于X X坐標(biāo)坐標(biāo)軸是對(duì)稱的,則稱此變換為關(guān)于軸是對(duì)稱的,則稱此變換為關(guān)于X X軸的對(duì)稱變換。經(jīng)過(guò)這軸的對(duì)稱變換。經(jīng)過(guò)這一變換后的坐標(biāo)點(diǎn)(一變換后的坐標(biāo)點(diǎn)(x x ,y y )與變換前的對(duì)應(yīng)坐標(biāo)點(diǎn)(與變換前的對(duì)應(yīng)坐標(biāo)點(diǎn)(x x,y y)的關(guān)系為:的關(guān)系為:x x = = x x, y y = - = -y y 與此類似,若變換前后的圖形關(guān)于與此類似,若變換前后的圖形關(guān)于Y Y軸對(duì)稱,則稱為軸對(duì)稱,則稱為關(guān)于關(guān)于Y Y軸的對(duì)稱變換。這一變換前后點(diǎn)的坐標(biāo)間的關(guān)系:軸的對(duì)稱變換。這一變換前后點(diǎn)的坐標(biāo)
12、間的關(guān)系: x x = - = -x x,y y = = y y當(dāng)圖形對(duì)當(dāng)圖形對(duì)X X軸和軸和Y Y軸都進(jìn)行對(duì)稱變換時(shí),即得相對(duì)于原點(diǎn)軸都進(jìn)行對(duì)稱變換時(shí),即得相對(duì)于原點(diǎn)的中心對(duì)稱變換。這一變換前后點(diǎn)的坐標(biāo)之間的關(guān)系為的中心對(duì)稱變換。這一變換前后點(diǎn)的坐標(biāo)之間的關(guān)系為: x x = - = -x x,y y = - = -y y對(duì)稱變換只改變圖形方位,不改變其形狀和大小。對(duì)稱變換只改變圖形方位,不改變其形狀和大小。 1112(5 5)錯(cuò)切變換)錯(cuò)切變換如果變換前坐標(biāo)點(diǎn)(如果變換前坐標(biāo)點(diǎn)(x x,y y)與變換后對(duì)應(yīng)的新坐標(biāo)點(diǎn)(與變換后對(duì)應(yīng)的新坐標(biāo)點(diǎn)(x x ,y y )的關(guān)系為:的關(guān)系為: x x
13、 = = x x + + cy cy,y y = = y y我們稱這一變換為沿我們稱這一變換為沿X X軸的錯(cuò)切變換,式中軸的錯(cuò)切變換,式中c c為錯(cuò)切系數(shù)為錯(cuò)切系數(shù)與此類似,若變換前后對(duì)應(yīng)點(diǎn)的坐標(biāo)關(guān)系為:與此類似,若變換前后對(duì)應(yīng)點(diǎn)的坐標(biāo)關(guān)系為: x x = = x x, y y = = y y + + bxbx 則稱此變換為沿則稱此變換為沿Y Y軸的錯(cuò)切變換,其中軸的錯(cuò)切變換,其中b b為錯(cuò)切系數(shù)。為錯(cuò)切系數(shù)。錯(cuò)切變換不僅改變圖形的形狀,而且改變圖形的方位,錯(cuò)切變換不僅改變圖形的形狀,而且改變圖形的方位,但圖形中的平行關(guān)系不變,但圖形中的平行關(guān)系不變, 13一般把上述變換統(tǒng)稱為基本的圖形變換,
14、絕大部一般把上述變換統(tǒng)稱為基本的圖形變換,絕大部分復(fù)雜的圖形變換都可以通過(guò)這些基本交換的適分復(fù)雜的圖形變換都可以通過(guò)這些基本交換的適當(dāng)組合來(lái)實(shí)現(xiàn)。當(dāng)組合來(lái)實(shí)現(xiàn)。 14二、幾何變換的矩陣表示形式二、幾何變換的矩陣表示形式 1. 1. 變換矩陣變換矩陣任何一個(gè)復(fù)雜圖形都是由任意多個(gè)有序點(diǎn)集連線而成。任何一個(gè)復(fù)雜圖形都是由任意多個(gè)有序點(diǎn)集連線而成。在解析幾何學(xué)中。在二維空間內(nèi),平面上的點(diǎn)可以用一在解析幾何學(xué)中。在二維空間內(nèi),平面上的點(diǎn)可以用一行兩列矩陣行兩列矩陣x yx y或兩行一列矩陣來(lái)表示。由此,一個(gè)或兩行一列矩陣來(lái)表示。由此,一個(gè)由由n n個(gè)點(diǎn)的坐標(biāo)組成的復(fù)雜圖形可以用個(gè)點(diǎn)的坐標(biāo)組成的復(fù)雜圖形
15、可以用n n2 2階矩陣表示:階矩陣表示: nxxxx.321 nyyyy.321這種圖形的表示法稱為二維圖形的矩陣表示法。這種圖形的表示法稱為二維圖形的矩陣表示法。15由此可知,圖形的變換可用矩陣運(yùn)算來(lái)實(shí)現(xiàn)。具體說(shuō)就由此可知,圖形的變換可用矩陣運(yùn)算來(lái)實(shí)現(xiàn)。具體說(shuō)就是由構(gòu)成圖形的點(diǎn)集的矩陣與是由構(gòu)成圖形的點(diǎn)集的矩陣與T= T= 矩陣乘法運(yùn)算,矩陣乘法運(yùn)算,即即我們稱我們稱T= T= 為二維圖形變換矩陣,其中點(diǎn)集中任為二維圖形變換矩陣,其中點(diǎn)集中任意一點(diǎn)(意一點(diǎn)(x x,y y)變換后坐標(biāo)為:變換后坐標(biāo)為: ca db nnnnnncybxdybxdybxcyaxcyaxcyaxdbcayyyx
16、xx.221122112121 dbca 是是變變換換后后的的坐坐標(biāo)標(biāo)式式中中yxyxdybxcyaxdbcayx 16 dybxycyaxx 這是我們熟悉的關(guān)于直角坐標(biāo)變換因子。這是我們熟悉的關(guān)于直角坐標(biāo)變換因子。由上式可知,變換矩陣由上式可知,變換矩陣 中各元素決定著圖形中各元素決定著圖形各種不同變換各種不同變換。 dbcaT172 2二維基本變換的矩陣表示二維基本變換的矩陣表示(1 1)比例變換)比例變換 若令變換矩陣若令變換矩陣 則寫成矩陣形式為:則寫成矩陣形式為: daT00 00yxdyaxdayx 若取若取a=3 d=1 a=3 d=1 對(duì)點(diǎn)(對(duì)點(diǎn)(2 2,3 3)做變換)做變換
17、, ,則則 可以看出,可以看出,a1a1, d=1 d=1,變換后圖形沿變換后圖形沿X X方向放大,方向放大, 顯然,當(dāng)顯然,當(dāng)00a1a1d1時(shí),則使圖形沿時(shí),則使圖形沿Y Y方向放大方向放大 36100332 yx18a a11, d=1 d=1,變換后變換后圖形沿圖形沿X X方向放大方向放大 當(dāng)當(dāng)a=1a=1,d1d1時(shí),則使時(shí),則使圖形沿圖形沿Y Y方向放大方向放大 19若取若取a=1a=1,d=0d=0,圖形沿圖形沿Y Y方向壓縮成線段,如下圖所示方向壓縮成線段,如下圖所示當(dāng)當(dāng)a=1a=1,d=1d=1變換后圖形沒(méi)有變化,稱這種變換矩陣為恒變換后圖形沒(méi)有變化,稱這種變換矩陣為恒等矩陣
18、。等矩陣。 4321000024420001442224424321 yxyx20若取若取a=d=1.5a=d=1.5對(duì)下圖中(對(duì)下圖中(a a)矩陣矩陣1 2 3 41 2 3 4做變換,則做變換,則各點(diǎn)在各點(diǎn)在X X,Y Y兩個(gè)方向產(chǎn)生相等的比例變換,即變換后兩個(gè)方向產(chǎn)生相等的比例變換,即變換后圖形和變換前圖形相似,相似中心為坐標(biāo)原點(diǎn)圖形和變換前圖形相似,相似中心為坐標(biāo)原點(diǎn)。 若若adad時(shí),使圖形在時(shí),使圖形在X X和和Y Y兩個(gè)方向產(chǎn)生不相等比例兩個(gè)方向產(chǎn)生不相等比例變換。下圖變換。下圖( (b)b)是是a=2,d=1.5a=2,d=1.5時(shí)對(duì)時(shí)對(duì) ( (a)a)中矩陣中矩陣12341
19、234變換變換結(jié)果。結(jié)果。 圖圖 ( (c)c)是取是取a=2,d=0.5a=2,d=0.5對(duì)矩陣對(duì)矩陣12341234變換結(jié)果,變換變換結(jié)果,變換后圖形在后圖形在X X方向放大,在方向放大,在Y Y方向縮小。方向縮小。 4321663336635.1005.1442224424321 21(2 2)對(duì)稱變換)對(duì)稱變換 令變換矩陣令變換矩陣T T 中中a a = -1, = -1,d d = 1, = 1,即即 使圖形對(duì)使圖形對(duì)Y Y軸對(duì)稱軸對(duì)稱例如:例如:如下圖所示如下圖所示 1001T3 215621421001562142321 22當(dāng)當(dāng)a=1a=1,d=1d=1時(shí),圖形對(duì)時(shí),圖形對(duì)X
20、X軸對(duì)稱即軸對(duì)稱即 1001T當(dāng)當(dāng) 時(shí),圖形對(duì)時(shí),圖形對(duì)+45+45度線對(duì)稱度線對(duì)稱 當(dāng)當(dāng) 時(shí),圖形時(shí),圖形4545度線對(duì)稱度線對(duì)稱 0110T 0110T圖形對(duì)圖形對(duì)+45+45度線對(duì)稱度線對(duì)稱圖形對(duì)圖形對(duì)- -4545度線對(duì)稱度線對(duì)稱23(3 3)錯(cuò)切變換)錯(cuò)切變換 當(dāng)變換矩陣中的當(dāng)變換矩陣中的a a= =d d=1=1,b b與與c c中一個(gè)為零,另一個(gè)為正中一個(gè)為零,另一個(gè)為正 數(shù)或負(fù)數(shù)時(shí),即數(shù)或負(fù)數(shù)時(shí),即 ,它對(duì)圖形的作用是使圖,它對(duì)圖形的作用是使圖 形產(chǎn)生沿一個(gè)坐標(biāo)方向錯(cuò)切。形產(chǎn)生沿一個(gè)坐標(biāo)方向錯(cuò)切。 由此可見(jiàn),點(diǎn)的由此可見(jiàn),點(diǎn)的X X坐標(biāo)不變。坐標(biāo)不變。y = y = kx+yk
21、x+y,即在原來(lái)坐即在原來(lái)坐標(biāo)上加上標(biāo)上加上kxkx,即沿即沿+ +Y Y方向移動(dòng)方向移動(dòng)kxkx值。點(diǎn)(值。點(diǎn)(0 0,0 0)則是不)則是不移動(dòng)的。移動(dòng)的。K K是一個(gè)常數(shù),所以是一個(gè)常數(shù),所以tgtg= =kx/xkx/x=k=k,即平行即平行X X軸軸的線段對(duì)的線段對(duì)X X軸傾斜軸傾斜角度。角度。=45=45度時(shí),度時(shí),k=1k=1。 101kT ykxxkyxyx 10124例如:例如: 由下圖可見(jiàn),圖形沿由下圖可見(jiàn),圖形沿+ +Y Y方向錯(cuò)切,這是對(duì)在第一方向錯(cuò)切,這是對(duì)在第一象限內(nèi)的點(diǎn)而言。象限內(nèi)的點(diǎn)而言。當(dāng)當(dāng) 時(shí),它使第一象限內(nèi)圖形沿時(shí),它使第一象限內(nèi)圖形沿+ +X X方向錯(cuò)切
22、方向錯(cuò)切 4 3 2 1361212211101441112214321 101kT第一像限內(nèi)圖形第一像限內(nèi)圖形沿沿+ +Y Y方向錯(cuò)切方向錯(cuò)切第一像限內(nèi)圖形第一像限內(nèi)圖形沿沿+ +X X方向錯(cuò)切方向錯(cuò)切25(4 4)旋轉(zhuǎn)變換)旋轉(zhuǎn)變換 旋轉(zhuǎn)變換是指坐標(biāo)軸不動(dòng),點(diǎn)或圖形繞坐標(biāo)原點(diǎn)旋轉(zhuǎn)旋轉(zhuǎn)變換是指坐標(biāo)軸不動(dòng),點(diǎn)或圖形繞坐標(biāo)原點(diǎn)旋轉(zhuǎn)角,以逆時(shí)針?lè)较蛉≌?。如下圖所示,其變換矩陣角,以逆時(shí)針?lè)较蛉≌?。如下圖所示,其變換矩陣則則 cossinsincosT cossinsincosyxyx26逆時(shí)鐘旋轉(zhuǎn)逆時(shí)鐘旋轉(zhuǎn)=90=90度時(shí),變換矩陣度時(shí),變換矩陣順時(shí)針旋轉(zhuǎn)順時(shí)針旋轉(zhuǎn)= -90= -90度時(shí),度
23、時(shí), =180 =180度時(shí),度時(shí), 下圖是矩陣旋轉(zhuǎn)下圖是矩陣旋轉(zhuǎn)3030度的情況,其坐標(biāo)變換如下:度的情況,其坐標(biāo)變換如下: 0110T 0110T 1001T 134. 0866. 1134. 0886. 1232. 2232. 1232. 2232. 1886. 05 . 05 . 0866. 01111222227三、二維圖形齊次坐標(biāo)矩陣變換三、二維圖形齊次坐標(biāo)矩陣變換1 1、 齊次坐標(biāo)與平移變換齊次坐標(biāo)與平移變換前面四種變換都可以通過(guò)變換矩陣前面四種變換都可以通過(guò)變換矩陣來(lái)實(shí)現(xiàn),那么它是否適合于平移變換呢?若實(shí)現(xiàn)平移變來(lái)實(shí)現(xiàn),那么它是否適合于平移變換呢?若實(shí)現(xiàn)平移變換,變換前后的坐標(biāo)
24、必須滿足下面的關(guān)系:換,變換前后的坐標(biāo)必須滿足下面的關(guān)系:這里這里t tx x,t ty y是平移量,應(yīng)為常數(shù),但是應(yīng)用上述的變換矩是平移量,應(yīng)為常數(shù),但是應(yīng)用上述的變換矩陣對(duì)點(diǎn)進(jìn)行變換:陣對(duì)點(diǎn)進(jìn)行變換: dbcaT tyyytxxx yxdybxcyaxdbcayx 28而這里的而這里的cycy,bxbx均非常量,因此用原來(lái)的均非常量,因此用原來(lái)的2 22 2的變換矩的變換矩陣是無(wú)法實(shí)現(xiàn)平移變換的,我們把陣是無(wú)法實(shí)現(xiàn)平移變換的,我們把2 22 2矩陣擴(kuò)充為矩陣擴(kuò)充為3 32 2矩陣,即令:矩陣,即令:但這樣又帶來(lái)新的問(wèn)題,二維圖形的點(diǎn)集矩陣是但這樣又帶來(lái)新的問(wèn)題,二維圖形的點(diǎn)集矩陣是n n2
25、 2階階的,而變換矩陣是的,而變換矩陣是3 32 2階的,根據(jù)矩陣乘法規(guī)則,它們階的,根據(jù)矩陣乘法規(guī)則,它們是無(wú)法相乘的。為此,我們把點(diǎn)向量也作擴(kuò)充,將是無(wú)法相乘的。為此,我們把點(diǎn)向量也作擴(kuò)充,將 擴(kuò)展為擴(kuò)展為 , ,即把點(diǎn)集矩陣擴(kuò)充為即把點(diǎn)集矩陣擴(kuò)充為n n3 3階階矩陣。這樣,點(diǎn)集矩陣與變換矩陣即可以進(jìn)行乘法運(yùn)算矩陣。這樣,點(diǎn)集矩陣與變換矩陣即可以進(jìn)行乘法運(yùn)算: mdblcaT yx 1yx mdybxlcyaxmdblcayx 129對(duì)點(diǎn)進(jìn)行平移變換:對(duì)點(diǎn)進(jìn)行平移變換:對(duì)點(diǎn)進(jìn)行平移變換:對(duì)點(diǎn)進(jìn)行平移變換:這里這里L(fēng) L,m m分別為分別為x x,y y方向的平移量。方向的平移量。 為使二
26、維變換矩陣具有更多的功能,可將為使二維變換矩陣具有更多的功能,可將3 32 2變換矩變換矩陣進(jìn)一步擴(kuò)充成陣進(jìn)一步擴(kuò)充成3 33 3階矩陣,即:階矩陣,即:則平移變換矩陣為:則平移變換矩陣為: mlTt1001 mylxmlyx 10011 sqpmdblcaT 1001001mlTt30對(duì)點(diǎn)進(jìn)行平移變換:對(duì)點(diǎn)進(jìn)行平移變換: 1110010011yxmylxmlyx 31例:設(shè)例:設(shè)l = 20l = 20,m = 20m = 20,對(duì)下圖中的字母對(duì)下圖中的字母T T做平移變換得做平移變換得:1111111148485252484840403632324444404036100201020011
27、111111128283232282820201612122424202016HGFEDCBAHGFEDCBAyxyx 32如上討論,在平移變換中,我們將如上討論,在平移變換中,我們將 擴(kuò)充為擴(kuò)充為 , 實(shí)際上是由二維向量變?yōu)槿S向量,實(shí)際上是由二維向量變?yōu)槿S向量,但但 可以看作是可以看作是z = 1z = 1平面上的點(diǎn),也就是說(shuō),平面上的點(diǎn),也就是說(shuō),經(jīng)此擴(kuò)充后,圖形落在了經(jīng)此擴(kuò)充后,圖形落在了z = 1z = 1的平面上,它對(duì)圖形的形的平面上,它對(duì)圖形的形狀沒(méi)有影響。狀沒(méi)有影響。 這種用三維向量表示二維向量的方法叫做齊次坐標(biāo)這種用三維向量表示二維向量的方法叫做齊次坐標(biāo)法。進(jìn)一步推廣,用法
28、。進(jìn)一步推廣,用n+1n+1維向量表示維向量表示n n維向量的方法稱之維向量的方法稱之為齊次坐標(biāo)法。為齊次坐標(biāo)法。 yx 1yx 1yx332 2二維圖形齊次坐標(biāo)矩陣變換二維圖形齊次坐標(biāo)矩陣變換對(duì)于前面介紹基本變換可用二維圖形齊次坐標(biāo)變換矩陣對(duì)于前面介紹基本變換可用二維圖形齊次坐標(biāo)變換矩陣一般表達(dá)式一般表達(dá)式這這3 33 3矩陣中各元素功能一共可分成四塊,即矩陣中各元素功能一共可分成四塊,即 這個(gè)這個(gè)2 22 2子矩陣可以實(shí)現(xiàn)圖形的比例、對(duì)稱、子矩陣可以實(shí)現(xiàn)圖形的比例、對(duì)稱、 錯(cuò)切、旋轉(zhuǎn)等基本變換;錯(cuò)切、旋轉(zhuǎn)等基本變換; 可以實(shí)現(xiàn)圖形平移變換;可以實(shí)現(xiàn)圖形平移變換; 可以實(shí)現(xiàn)圖形透視變換;可以
29、實(shí)現(xiàn)圖形透視變換; 可以實(shí)現(xiàn)圖形全比例變換??梢詫?shí)現(xiàn)圖形全比例變換。 sqpmdblcaT dbca ml qp s34例如,用矩陣?yán)?,用矩?對(duì)圖形進(jìn)行變換:對(duì)圖形進(jìn)行變換: 當(dāng)當(dāng)s1s1s1時(shí),圖形產(chǎn)生整體比例縮小。時(shí),圖形產(chǎn)生整體比例縮小。當(dāng)當(dāng)s=1s=1時(shí),圖形大小不變。時(shí),圖形大小不變。由此表明,齊次坐標(biāo)的應(yīng)用,擴(kuò)大了變換矩陣功能,只由此表明,齊次坐標(biāo)的應(yīng)用,擴(kuò)大了變換矩陣功能,只要對(duì)矩陣中有關(guān)元素賦以不同的要對(duì)矩陣中有關(guān)元素賦以不同的 值,即可達(dá)到預(yù)期變換值,即可達(dá)到預(yù)期變換目的。目的。 sT00010001 1000100011sysxsyxsyx3536對(duì)稱變換37四、組合變
30、換四、組合變換 上述的五種二維圖形幾何變換是二維圖形幾何變換上述的五種二維圖形幾何變換是二維圖形幾何變換中的最基本的幾何變換,在進(jìn)行這些基本的幾何變換時(shí)中的最基本的幾何變換,在進(jìn)行這些基本的幾何變換時(shí),我們給定了一些特定的約束條件,如,我們給定了一些特定的約束條件,如: :旋轉(zhuǎn)變換是指繞旋轉(zhuǎn)變換是指繞坐標(biāo)原點(diǎn)的旋轉(zhuǎn),比例變換是關(guān)于坐標(biāo)原點(diǎn)的放大或縮坐標(biāo)原點(diǎn)的旋轉(zhuǎn),比例變換是關(guān)于坐標(biāo)原點(diǎn)的放大或縮小等等,因而是幾何變換中的一些簡(jiǎn)單情形。實(shí)際中的小等等,因而是幾何變換中的一些簡(jiǎn)單情形。實(shí)際中的二維圖形作幾何變換時(shí)要復(fù)雜得多,往往是多種基本的二維圖形作幾何變換時(shí)要復(fù)雜得多,往往是多種基本的幾何變換復(fù)
31、合而成的,因此我們把由若干個(gè)基本的幾何幾何變換復(fù)合而成的,因此我們把由若干個(gè)基本的幾何變換復(fù)合而成為一個(gè)幾何變換的過(guò)程稱為組合變換也稱變換復(fù)合而成為一個(gè)幾何變換的過(guò)程稱為組合變換也稱為幾何變換的級(jí)聯(lián)。為幾何變換的級(jí)聯(lián)。381 1繞任意點(diǎn)旋轉(zhuǎn)變換繞任意點(diǎn)旋轉(zhuǎn)變換平面圖形繞任意點(diǎn)平面圖形繞任意點(diǎn)p p(x xp p,y yp p)旋轉(zhuǎn)角,需要通過(guò)以下幾旋轉(zhuǎn)角,需要通過(guò)以下幾個(gè)步驟來(lái)實(shí)現(xiàn):個(gè)步驟來(lái)實(shí)現(xiàn):(1 1)將旋轉(zhuǎn)中心平移到原點(diǎn),變換矩陣為:)將旋轉(zhuǎn)中心平移到原點(diǎn),變換矩陣為: 10010011ppyxTYXp p(x xp p,y yp p)39(2 2) 將圖形繞坐標(biāo)系原點(diǎn)旋轉(zhuǎn)角將圖形繞坐標(biāo)
32、系原點(diǎn)旋轉(zhuǎn)角 ,變換矩陣為:變換矩陣為: 1000cossin0sincos2 TYX(3 3) 將旋轉(zhuǎn)中心平移回到原來(lái)位置,變換矩陣為:將旋轉(zhuǎn)中心平移回到原來(lái)位置,變換矩陣為: syxTpp0010013YX40因此,繞任意點(diǎn)因此,繞任意點(diǎn)p p的旋轉(zhuǎn)變換矩陣為:的旋轉(zhuǎn)變換矩陣為: 顯然,當(dāng)顯然,當(dāng)x xp p=0=0,y yp p=0=0時(shí),即為對(duì)原點(diǎn)的旋轉(zhuǎn)變換矩陣。時(shí),即為對(duì)原點(diǎn)的旋轉(zhuǎn)變換矩陣。 100)cos1(sincossinsin)cos1(sincos0010011000cossin0sincos1001001321 ppppppppyxyxsyxyxTTTT412 2對(duì)任意點(diǎn)
33、做比例變換對(duì)任意點(diǎn)做比例變換 設(shè)任意一點(diǎn)設(shè)任意一點(diǎn)p p(x xp p, y yp p) ,作比例變換需通過(guò)以下步作比例變換需通過(guò)以下步驟來(lái)完成:驟來(lái)完成: (1 1)將)將P P點(diǎn)移到坐標(biāo)原點(diǎn),變換矩陣為:點(diǎn)移到坐標(biāo)原點(diǎn),變換矩陣為: 10010011ppyxTYX42(2 2)作關(guān)于原點(diǎn)的比例變換,變換矩陣為:)作關(guān)于原點(diǎn)的比例變換,變換矩陣為:(3 3)對(duì)原點(diǎn)作反平移變換,移到原來(lái)的位置:)對(duì)原點(diǎn)作反平移變換,移到原來(lái)的位置: 10000001daTYX 10010013ppyxTYX43對(duì)任意點(diǎn)對(duì)任意點(diǎn)P P作比例變換,其變換矩陣為作比例變換,其變換矩陣為 100)1(0)1(0001
34、00110000001001001321dydaxasyxdayxTTTTpppppp443 3對(duì)任意直線對(duì)稱變換對(duì)任意直線對(duì)稱變換如下圖所示,設(shè)任意直線的方程為:如下圖所示,設(shè)任意直線的方程為:Ax+By+C=0Ax+By+C=0,直線在直線在X X軸和軸和Y Y軸上的截矩分別軸上的截矩分別C/AC/A和和C/BC/B,直線與直線與X X軸的夾角軸的夾角為,為,=arctgarctg(A/B)(A/B)。YX-C/B-C/A45對(duì)任意直線的對(duì)稱變換由以下幾個(gè)步驟來(lái)完成:對(duì)任意直線的對(duì)稱變換由以下幾個(gè)步驟來(lái)完成:(1 1)平移直線,使其通過(guò)原點(diǎn)(可以沿)平移直線,使其通過(guò)原點(diǎn)(可以沿X X向和
35、向和Y Y向平移,向平移,這里沿這里沿X X向?qū)⒅本€平移到原點(diǎn)),變換矩陣為:向?qū)⒅本€平移到原點(diǎn)),變換矩陣為: 100010/011ACTYX46(2 2)繞原點(diǎn)旋轉(zhuǎn),使直線與某坐標(biāo)軸重合(這里以與)繞原點(diǎn)旋轉(zhuǎn),使直線與某坐標(biāo)軸重合(這里以與X X軸重合為例),變換矩陣如下:軸重合為例),變換矩陣如下: 1000cossin0sincos1000)cos()sin(0)sin()cos(2 TYX47(3 3)對(duì)坐標(biāo)軸對(duì)稱變換(這里是對(duì))對(duì)坐標(biāo)軸對(duì)稱變換(這里是對(duì)X X軸),其變換矩陣為:軸),其變換矩陣為: 1000100013TYX48(4 4)繞原點(diǎn)旋轉(zhuǎn),使直線回到原來(lái)與)繞原點(diǎn)旋轉(zhuǎn),
36、使直線回到原來(lái)與X X軸成角的位置,軸成角的位置,變換矩陣為:變換矩陣為: 1000cossin0sincos4 TYX49(5 5)平移直線,使其回到原來(lái)的位置,變換矩陣為:)平移直線,使其回到原來(lái)的位置,變換矩陣為: 100010/015ACTX50通過(guò)以上五個(gè)步驟,即可實(shí)現(xiàn)圖形對(duì)任意直線的對(duì)稱變通過(guò)以上五個(gè)步驟,即可實(shí)現(xiàn)圖形對(duì)任意直線的對(duì)稱變換,其組合變換矩陣如下:換,其組合變換矩陣如下: 100/2sin2cos2sin/)12(cos2sin2cos54321ACACTTTTTT 51綜合上述,復(fù)雜變換是通過(guò)基本變換組合而成的,由于綜合上述,復(fù)雜變換是通過(guò)基本變換組合而成的,由于矩陣
37、乘法不適用于交換律,即,因此,組合變換順序不矩陣乘法不適用于交換律,即,因此,組合變換順序不能顛倒,順序不同,則變換結(jié)果不同。能顛倒,順序不同,則變換結(jié)果不同。52例例4 43 3 各頂點(diǎn)坐標(biāo)各頂點(diǎn)坐標(biāo)A A(3 3,0 0),),B B(4 4,2 2),),C C(6 6,0 0)使其繞原點(diǎn)轉(zhuǎn)使其繞原點(diǎn)轉(zhuǎn)9090度,再向度,再向X X方向平移方向平移2 2,Y Y方向平移方向平移11。 因因=90=90O O 則變換矩陣:則變換矩陣: 111532202100101210111020643100101210100190cos90sin290sin90cosCBACBAOOOO 53如果先進(jìn)
38、行平移變換,再進(jìn)行旋轉(zhuǎn)變換,則矩陣為:如果先進(jìn)行平移變換,再進(jìn)行旋轉(zhuǎn)變換,則矩陣為:111865131100201110111020643100cossincossinsincossincos1000cossin0sincos1001001CBACBAttttttTyxyxyx 由于變換順序不同,其結(jié)果也不同。由于變換順序不同,其結(jié)果也不同。 54例例4 44 4 設(shè)有一三角形設(shè)有一三角形ABCABC,其三個(gè)頂點(diǎn)坐標(biāo)為其三個(gè)頂點(diǎn)坐標(biāo)為A A(2 2,4 4),),B B(2 2,2 2),),C C(5 5,2 2),),求對(duì)于直線求對(duì)于直線22x+3y+3=0 x+3y+3=0的的對(duì)稱變換后
39、對(duì)稱變換后CBA 1110791. 23061. 00737. 16123. 55379. 33839. 51113245221003845. 13838. 0923. 09243. 0923. 03838. 0100/2sin2cos2sin/) 12(cos2sin2cosCBATCBAACACT 其中其中 = = arctyarcty(-A/B)=arcty(2/3)(-A/B)=arcty(2/3) 33330 0414155變換后的如下圖所示。變換后的如下圖所示。 564.6 4.6 二維圖像裁剪二維圖像裁剪一、概述一、概述1 1、定義、定義 為了描述圖形對(duì)象,我們必須存儲(chǔ)它的全部信
40、息,為了描述圖形對(duì)象,我們必須存儲(chǔ)它的全部信息,但有時(shí)為了達(dá)到分區(qū)描述或重點(diǎn)描述某一部分的目的,但有時(shí)為了達(dá)到分區(qū)描述或重點(diǎn)描述某一部分的目的,往往將要描述的部分置于一個(gè)窗口之內(nèi),而將窗口之外往往將要描述的部分置于一個(gè)窗口之內(nèi),而將窗口之外部部“剪掉剪掉”,這個(gè)處理過(guò)程叫做裁剪。,這個(gè)處理過(guò)程叫做裁剪。 裁剪實(shí)質(zhì)上是從數(shù)據(jù)集合中抽取信息的過(guò)程,裁剪實(shí)質(zhì)上是從數(shù)據(jù)集合中抽取信息的過(guò)程,這個(gè)這個(gè)過(guò)程是通過(guò)一定計(jì)算方法實(shí)現(xiàn)的。過(guò)程是通過(guò)一定計(jì)算方法實(shí)現(xiàn)的。裁剪就是將指定窗口裁剪就是將指定窗口作為圖形邊界,從一幅大的畫面中抽取所需的具體信息作為圖形邊界,從一幅大的畫面中抽取所需的具體信息,以顯示某一局
41、部畫面或視圖。,以顯示某一局部畫面或視圖。第四章第四章 二維圖形生成和變換技術(shù)二維圖形生成和變換技術(shù) 4.1 4.1 基本繪圖元素基本繪圖元素 4.2 4.2 直線段的生成直線段的生成 4.3 4.3 曲線的生成曲線的生成 4.4 4.4 區(qū)域填充區(qū)域填充 4.5 4.5 二維圖形變換二維圖形變換 4.6 4.6 二維圖像剪裁二維圖像剪裁 57 在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇到一些大而復(fù)雜的圖形,在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇到一些大而復(fù)雜的圖形,如集成電路布線圖、建筑結(jié)構(gòu)圖、地形地貌圖等。由于如集成電路布線圖、建筑結(jié)構(gòu)圖、地形地貌圖等。由于顯示屏幕的尺寸及其分辨率限制,這樣復(fù)雜的圖形往往顯示屏幕的尺寸及其分
42、辨率限制,這樣復(fù)雜的圖形往往不能全部顯示出來(lái),即使將它們采用比例變換后全部顯不能全部顯示出來(lái),即使將它們采用比例變換后全部顯示在同一屏幕上,也只能表現(xiàn)一個(gè)大致輪廓,并且圖形示在同一屏幕上,也只能表現(xiàn)一個(gè)大致輪廓,并且圖形擁擠不清。因此對(duì)復(fù)雜圖形,一般只能顯示它的局部?jī)?nèi)擁擠不清。因此對(duì)復(fù)雜圖形,一般只能顯示它的局部?jī)?nèi)容,我們?cè)谘芯磕硰?fù)雜圖形時(shí),往往對(duì)某特定畫面感興容,我們?cè)谘芯磕硰?fù)雜圖形時(shí),往往對(duì)某特定畫面感興趣,在這種情況下,我們將這一特定區(qū)域放大后顯示出趣,在這種情況下,我們將這一特定區(qū)域放大后顯示出來(lái),而把周圍畫面部分全部擦除,這樣可清晰地觀察其來(lái),而把周圍畫面部分全部擦除,這樣可清晰地觀
43、察其細(xì)節(jié)部分細(xì)節(jié)部分 58我們假定裁剪是針對(duì)用戶坐標(biāo)中窗口邊界進(jìn)行的,裁剪我們假定裁剪是針對(duì)用戶坐標(biāo)中窗口邊界進(jìn)行的,裁剪完成后,再把窗口內(nèi)圖形映射到視區(qū)。所以裁剪的目的完成后,再把窗口內(nèi)圖形映射到視區(qū)。所以裁剪的目的是顯示可見(jiàn)點(diǎn)和可見(jiàn)部分,刪除視區(qū)外的部分。例如,是顯示可見(jiàn)點(diǎn)和可見(jiàn)部分,刪除視區(qū)外的部分。例如,下圖(下圖(a a)定義了一個(gè)矩形窗口定義了一個(gè)矩形窗口ABCDABCD,窗口內(nèi)會(huì)窗口內(nèi)會(huì)有有EFGEFG的一部分,而直線段的一部分,而直線段EGEG、FGFG都有一部分在都有一部分在窗口外。然后將落在窗口內(nèi)這部分圖形傳送到視圖區(qū)內(nèi)窗口外。然后將落在窗口內(nèi)這部分圖形傳送到視圖區(qū)內(nèi)顯示,
44、如圖(顯示,如圖(b b)所示。此時(shí),窗口外那部分被裁剪掉。所示。此時(shí),窗口外那部分被裁剪掉。 59二、二、 窗口區(qū)和視圖區(qū)窗口區(qū)和視圖區(qū)用戶域:在進(jìn)行圖形設(shè)計(jì)時(shí),圖形輸出程序中的圖形都用戶域:在進(jìn)行圖形設(shè)計(jì)時(shí),圖形輸出程序中的圖形都 是在用戶坐標(biāo)系中定義的。此坐標(biāo)系擁有的區(qū)是在用戶坐標(biāo)系中定義的。此坐標(biāo)系擁有的區(qū) 域在理論上是無(wú)限的,在使用時(shí)我們可以把它域在理論上是無(wú)限的,在使用時(shí)我們可以把它 當(dāng)作是一個(gè)有限的矩形區(qū),即用戶域。當(dāng)作是一個(gè)有限的矩形區(qū),即用戶域。窗口區(qū):用戶可以在用戶域中指定任意區(qū)域輸出到屏幕窗口區(qū):用戶可以在用戶域中指定任意區(qū)域輸出到屏幕 上,這個(gè)指定區(qū)域稱為窗口區(qū),簡(jiǎn)稱窗
45、口(上,這個(gè)指定區(qū)域稱為窗口區(qū),簡(jiǎn)稱窗口(WindowWindow) 如圖所示的矩形如圖所示的矩形 ABCD ABCD 就是我們定義的一個(gè)窗口。就是我們定義的一個(gè)窗口。我們可用該矩形的左下角和右上角兩點(diǎn)坐標(biāo)來(lái)定義其大我們可用該矩形的左下角和右上角兩點(diǎn)坐標(biāo)來(lái)定義其大小和位置。因此,定義窗口的目的就是選取用戶所定義小和位置。因此,定義窗口的目的就是選取用戶所定義的圖形中需要觀察的那一部分圖形。的圖形中需要觀察的那一部分圖形。窗口區(qū),用窗口區(qū),用左下角和右左下角和右上角來(lái)定義上角來(lái)定義60視圖區(qū):簡(jiǎn)稱視圖(視圖區(qū):簡(jiǎn)稱視圖(ViewportViewport),),是在屏幕上定義的一是在屏幕上定義的一
46、個(gè)小于或等于屏幕區(qū)域一個(gè)矩形塊。同樣也是用該矩形個(gè)小于或等于屏幕區(qū)域一個(gè)矩形塊。同樣也是用該矩形左下角和右上角兩點(diǎn)坐標(biāo)來(lái)定義大小和位置。視圖區(qū)可左下角和右上角兩點(diǎn)坐標(biāo)來(lái)定義大小和位置。視圖區(qū)可用來(lái)顯示某一窗口內(nèi)圖形。所以人們利用窗口來(lái)選擇需用來(lái)顯示某一窗口內(nèi)圖形。所以人們利用窗口來(lái)選擇需要觀察那一部分圖形,而利用視圖區(qū)來(lái)指定這一部分圖要觀察那一部分圖形,而利用視圖區(qū)來(lái)指定這一部分圖形在屏幕上顯示位置。下圖表示窗口與視圖關(guān)系。形在屏幕上顯示位置。下圖表示窗口與視圖關(guān)系。 屏幕屏幕視圖區(qū)視圖區(qū)窗口區(qū)窗口區(qū)61 在交互式圖形設(shè)計(jì)中,通常把一個(gè)屏幕分為幾個(gè)視圖在交互式圖形設(shè)計(jì)中,通常把一個(gè)屏幕分為幾個(gè)
47、視圖區(qū),每個(gè)視圖區(qū)都有各自用途,如圖所示,視圖區(qū)區(qū),每個(gè)視圖區(qū)都有各自用途,如圖所示,視圖區(qū)1 1為用為用戶圖形區(qū),視圖區(qū)戶圖形區(qū),視圖區(qū)2 2為命令區(qū),視圖區(qū)為命令區(qū),視圖區(qū)3 3是信息區(qū)。同時(shí)是信息區(qū)。同時(shí)用戶圖形區(qū)還可分為各個(gè)子區(qū),以滿足用戶顯示多層窗用戶圖形區(qū)還可分為各個(gè)子區(qū),以滿足用戶顯示多層窗口的需要。口的需要。 由于窗口和視圖是在不同坐標(biāo)系中定義的,因此,由于窗口和視圖是在不同坐標(biāo)系中定義的,因此,在把窗口中圖形信息送到視圖區(qū)之前,必須進(jìn)行坐標(biāo)變?cè)诎汛翱谥袌D形信息送到視圖區(qū)之前,必須進(jìn)行坐標(biāo)變換,即把用戶坐標(biāo)系的坐標(biāo)值轉(zhuǎn)化為設(shè)備(屏幕)坐標(biāo)換,即把用戶坐標(biāo)系的坐標(biāo)值轉(zhuǎn)化為設(shè)備(屏
48、幕)坐標(biāo)系的坐標(biāo)值,這個(gè)變換稱窗口系的坐標(biāo)值,這個(gè)變換稱窗口視圖變換。視圖變換。62如圖所示,設(shè)在用戶坐標(biāo)系下定義的窗口為:左下角點(diǎn)如圖所示,設(shè)在用戶坐標(biāo)系下定義的窗口為:左下角點(diǎn)坐標(biāo)(坐標(biāo)(W Wxlxl,W Wybyb),),右上角點(diǎn)坐標(biāo)(右上角點(diǎn)坐標(biāo)(W Wxrxr,W Wytyt););在設(shè)備坐在設(shè)備坐標(biāo)系中定義的視區(qū)為:左下角點(diǎn)坐標(biāo)(標(biāo)系中定義的視區(qū)為:左下角點(diǎn)坐標(biāo)(V Vxlxl,V Vybyb),),右上右上角點(diǎn)坐標(biāo)(角點(diǎn)坐標(biāo)(V Vxrxr ,V Vytyt)。)。63由圖可知:由圖可知:由(由(4-244-24)式得窗口中一點(diǎn))式得窗口中一點(diǎn)P(xP(xW W,y,yW W)
49、 )變換到視區(qū)中對(duì)應(yīng)的變換到視區(qū)中對(duì)應(yīng)的點(diǎn)點(diǎn)V(xV(xV V,y,yV V) )二者之間的關(guān)系為:二者之間的關(guān)系為:設(shè)設(shè): : )244( ybytybWybytybVxlxrxlWxlxrxlVWWWyVVVyWWWxVVVx)254()()( ybybWybytybytVxlxlWxlxrxlxrVVWyWWVVyVWxWWVVxybybytybytybybytybytxlxlxrxlxrxlxlxrxlxrWWWVVVdWWVVcWWWVVVbWWVVa64則(則(4.254.25)式可寫成:)式可寫成:寫成矩陣形式:寫成矩陣形式: dcyybaxxWVWV 1000011dcbayx
50、yxWWVV65由此可見(jiàn)窗口由此可見(jiàn)窗口視圖變換是比例變換和平移變換的組視圖變換是比例變換和平移變換的組合變換。先進(jìn)行平移變換將窗口左下角坐標(biāo)移到用戶坐合變換。先進(jìn)行平移變換將窗口左下角坐標(biāo)移到用戶坐標(biāo)原點(diǎn),接著進(jìn)行比例變換,使窗口中各點(diǎn)比例變換到標(biāo)原點(diǎn),接著進(jìn)行比例變換,使窗口中各點(diǎn)比例變換到設(shè)備坐標(biāo)系(屏幕)中,最后再作平移交換,使原點(diǎn)移設(shè)備坐標(biāo)系(屏幕)中,最后再作平移交換,使原點(diǎn)移到視圖左下角。到視圖左下角。通過(guò)窗口通過(guò)窗口視圖變換,我們就實(shí)現(xiàn)了將用戶坐標(biāo)系中視圖變換,我們就實(shí)現(xiàn)了將用戶坐標(biāo)系中窗口區(qū)中任意一點(diǎn)轉(zhuǎn)換成設(shè)備坐標(biāo)系中屏幕視圖區(qū)中一窗口區(qū)中任意一點(diǎn)轉(zhuǎn)換成設(shè)備坐標(biāo)系中屏幕視圖區(qū)
51、中一點(diǎn)變換,從而就可以把實(shí)際物體圖形顯示在顯示器上,點(diǎn)變換,從而就可以把實(shí)際物體圖形顯示在顯示器上,但要注意:為了使經(jīng)過(guò)窗口但要注意:為了使經(jīng)過(guò)窗口視圖變換后的圖形在視視圖變換后的圖形在視圖區(qū)中輸出時(shí)不產(chǎn)生失真現(xiàn)象,在定義窗口和視圖時(shí),圖區(qū)中輸出時(shí)不產(chǎn)生失真現(xiàn)象,在定義窗口和視圖時(shí),必須保證使窗口和視圖區(qū)高度和寬度之間比例相同。必須保證使窗口和視圖區(qū)高度和寬度之間比例相同。 66三、三、 直線段裁剪直線段裁剪 1 1、點(diǎn)的剪裁、點(diǎn)的剪裁 裁剪的過(guò)程就是對(duì)窗口內(nèi)每個(gè)圖形元素都得劃分一裁剪的過(guò)程就是對(duì)窗口內(nèi)每個(gè)圖形元素都得劃分一下可見(jiàn)部分和不可見(jiàn)部分。裁剪可以在各種不同類型的下可見(jiàn)部分和不可見(jiàn)部分
52、。裁剪可以在各種不同類型的圖形元素上實(shí)現(xiàn),如點(diǎn)、向量、直線段、字符以及多邊圖形元素上實(shí)現(xiàn),如點(diǎn)、向量、直線段、字符以及多邊形等。形等。 裁剪算法中最基本的情況是點(diǎn)的裁剪。判斷某一點(diǎn)裁剪算法中最基本的情況是點(diǎn)的裁剪。判斷某一點(diǎn)P P(x x,y y)是否可見(jiàn),可以利用下列一對(duì)不等式來(lái)確定該是否可見(jiàn),可以利用下列一對(duì)不等式來(lái)確定該點(diǎn)是否在窗口范圍內(nèi)。點(diǎn)是否在窗口范圍內(nèi)。如圖所示如圖所示: : W Wxlxl x xW W W Wxrxr W Wybyb y yW W W Wytyt 滿足上述兩個(gè)不等式的點(diǎn)即在窗口內(nèi),屬于可見(jiàn)的滿足上述兩個(gè)不等式的點(diǎn)即在窗口內(nèi),屬于可見(jiàn)的點(diǎn),應(yīng)該保留;反之,則該點(diǎn)不
53、可見(jiàn),應(yīng)予舍棄。點(diǎn),應(yīng)該保留;反之,則該點(diǎn)不可見(jiàn),應(yīng)予舍棄。 WytWybWxlWxr67 2 2、直線段與窗口關(guān)系、直線段與窗口關(guān)系 點(diǎn)的裁剪雖然很簡(jiǎn)單,但要把所有的圖形元素轉(zhuǎn)換成點(diǎn)的裁剪雖然很簡(jiǎn)單,但要把所有的圖形元素轉(zhuǎn)換成點(diǎn),然后用上述不等式判別是否可見(jiàn),那是很不現(xiàn)實(shí)的點(diǎn),然后用上述不等式判別是否可見(jiàn),那是很不現(xiàn)實(shí)的。這樣的裁剪過(guò)程所在時(shí)間就會(huì)過(guò)長(zhǎng),不經(jīng)濟(jì)。因此,。這樣的裁剪過(guò)程所在時(shí)間就會(huì)過(guò)長(zhǎng),不經(jīng)濟(jì)。因此,要求一種適合較大的圖形元素,比較有效的裁剪方法。要求一種適合較大的圖形元素,比較有效的裁剪方法。直線段是組成一切其它圖形的基礎(chǔ)。任何圖形(包括曲直線段是組成一切其它圖形的基礎(chǔ)。任何
54、圖形(包括曲線、字符和多邊形),一般都能用不同直線段組合形成線、字符和多邊形),一般都能用不同直線段組合形成 對(duì)于任意一條直線段,它相對(duì)于一個(gè)已定義的窗口對(duì)于任意一條直線段,它相對(duì)于一個(gè)已定義的窗口位置關(guān)系不外乎有四種可能,如圖所示。位置關(guān)系不外乎有四種可能,如圖所示。 直線段完全被直線段完全被排斥在窗口的排斥在窗口的邊框之外邊框之外直線段完全直線段完全被包含在窗被包含在窗口之內(nèi)口之內(nèi)直線段和窗口的一條邊框直線段和窗口的一條邊框相交,使得該直線段被相相交,使得該直線段被相交點(diǎn)分成兩截,其中的一交點(diǎn)分成兩截,其中的一個(gè)截段落在窗口之內(nèi),而個(gè)截段落在窗口之內(nèi),而另一個(gè)截段留在窗口之外另一個(gè)截段留在
55、窗口之外直線段貫穿整個(gè)窗口,這樣直線段貫穿整個(gè)窗口,這樣,直線段就與窗口的兩條邊,直線段就與窗口的兩條邊框相交,使得原直線段被分框相交,使得原直線段被分成三個(gè)截段,其中只能有一成三個(gè)截段,其中只能有一個(gè)截段落在窗口內(nèi),而另外個(gè)截段落在窗口內(nèi),而另外的兩段都處于窗口之外,的兩段都處于窗口之外,68歸納以上四種情況,可以得出這樣一個(gè)結(jié)論:歸納以上四種情況,可以得出這樣一個(gè)結(jié)論:對(duì)于任意一條直線段,它要么被完全排斥在窗口之外,對(duì)于任意一條直線段,它要么被完全排斥在窗口之外,如上述的情況(如上述的情況(1 1);要么在窗口內(nèi)留下一個(gè)可見(jiàn)段,并);要么在窗口內(nèi)留下一個(gè)可見(jiàn)段,并且只能有一個(gè)可見(jiàn)段且只能有
56、一個(gè)可見(jiàn)段, ,如上所述的情況(如上所述的情況(2 2)、()、(3 3)和()和(4 4)。因?yàn)橐粭l直線段可以由它的兩個(gè)端點(diǎn)來(lái)唯一地確定)。因?yàn)橐粭l直線段可以由它的兩個(gè)端點(diǎn)來(lái)唯一地確定,所以,要確定一條直線段上位于窗口以內(nèi)的可見(jiàn)段,所以,要確定一條直線段上位于窗口以內(nèi)的可見(jiàn)段,僅需求得它的兩個(gè)可見(jiàn)端點(diǎn)就行了。僅需求得它的兩個(gè)可見(jiàn)端點(diǎn)就行了。下面我們介紹幾種直線剪裁法下面我們介紹幾種直線剪裁法 693 3編碼裁剪法編碼裁剪法(1 1)編碼規(guī)則)編碼規(guī)則 這一方法是由庫(kù)恩和薩瑟蘭德(這一方法是由庫(kù)恩和薩瑟蘭德(CohenCohen和和SutherlandSutherland)提提出的,該方法是把
57、包含窗口的平面區(qū)域沿窗口的四條邊線出的,該方法是把包含窗口的平面區(qū)域沿窗口的四條邊線分成九個(gè)區(qū)域分成九個(gè)區(qū)域. . 每個(gè)區(qū)域用一個(gè)四位代碼來(lái)表示,代碼中每一位分別是每個(gè)區(qū)域用一個(gè)四位代碼來(lái)表示,代碼中每一位分別是0 0或或1 1,是按照窗口邊線來(lái)確定的,下面給出編碼規(guī)則,其中,是按照窗口邊線來(lái)確定的,下面給出編碼規(guī)則,其中 最右邊的位是第一位,依次第最右邊的位是第一位,依次第 二、三、四位。二、三、四位。 第一位置第一位置 l:l:該端點(diǎn)位于窗口左側(cè)該端點(diǎn)位于窗口左側(cè) 第二位置第二位置 l:l:該端點(diǎn)位于窗口右側(cè)該端點(diǎn)位于窗口右側(cè) 第三位置第三位置 1: 1:該端點(diǎn)位于窗口下面該端點(diǎn)位于窗口下
58、面 第四位置第四位置 l:l:該端點(diǎn)位于窗口上面該端點(diǎn)位于窗口上面 否則,相應(yīng)位置置否則,相應(yīng)位置置0 0。 70 由編碼規(guī)則可知,若線段兩端點(diǎn)編碼均為零,則兩由編碼規(guī)則可知,若線段兩端點(diǎn)編碼均為零,則兩點(diǎn)均在窗口內(nèi),線段完全可見(jiàn)。因此,要判斷兩端點(diǎn)線點(diǎn)均在窗口內(nèi),線段完全可見(jiàn)。因此,要判斷兩端點(diǎn)線段與窗口對(duì)應(yīng)關(guān)系,可用兩個(gè)端點(diǎn)編碼逐位取邏輯段與窗口對(duì)應(yīng)關(guān)系,可用兩個(gè)端點(diǎn)編碼逐位取邏輯“與與”,若線段兩端點(diǎn)邏輯,若線段兩端點(diǎn)邏輯“與與”不為不為0 0,必在窗口外,根據(jù),必在窗口外,根據(jù)圖形中直線兩端點(diǎn)圖形中直線兩端點(diǎn)p p1 1,p p2 2按其所在區(qū)域賦予相應(yīng)代碼,以按其所在區(qū)域賦予相應(yīng)代碼
59、,以C C1 1和和C C2 2表示,然后再根據(jù)端點(diǎn)對(duì)直線進(jìn)行可見(jiàn)和不可見(jiàn)判表示,然后再根據(jù)端點(diǎn)對(duì)直線進(jìn)行可見(jiàn)和不可見(jiàn)判斷斷(2 2)算法步驟)算法步驟下面給出直線段裁剪編碼算法步驟:下面給出直線段裁剪編碼算法步驟:當(dāng)兩端點(diǎn)當(dāng)兩端點(diǎn)P P1 1 (x (x1 1,y,y1 1) )和和P P2 2 (x (x2 2,y,y2 2) ),在區(qū)域在區(qū)域00000000中,即中,即滿足點(diǎn)的裁剪不等式。滿足點(diǎn)的裁剪不等式。 W Wxlxl (x(x1 1,x,x2 2) ) W Wxrxr W Wybyb (y(y1 1,y,y2 2)W Wytyt則兩端點(diǎn)代碼則兩端點(diǎn)代碼C C1 1C C2 20
60、0 表示均在窗口內(nèi),應(yīng)全部保留表示均在窗口內(nèi),應(yīng)全部保留71當(dāng)兩個(gè)端點(diǎn)在窗口邊線外的同側(cè)位置,則它們的四位當(dāng)兩個(gè)端點(diǎn)在窗口邊線外的同側(cè)位置,則它們的四位代碼中,有一相同位,同時(shí)為代碼中,有一相同位,同時(shí)為“1”“1”,顯然兩個(gè)端點(diǎn)代碼,顯然兩個(gè)端點(diǎn)代碼的邏輯乘不等于零。即的邏輯乘不等于零。即C C1 1CC2 2 0 0。此檢查判斷直線在窗此檢查判斷直線在窗口外,應(yīng)全部舍棄??谕?,應(yīng)全部舍棄。如果直線兩端點(diǎn)不符合上述兩種情況,不能簡(jiǎn)單地全如果直線兩端點(diǎn)不符合上述兩種情況,不能簡(jiǎn)單地全部保留或全部舍棄直線時(shí),則需計(jì)算出直線與窗口邊線部保留或全部舍棄直線時(shí),則需計(jì)算出直線與窗口邊線的交點(diǎn),將直線分
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《義務(wù)教育法》知識(shí)考試復(fù)習(xí)題庫(kù)(含答案)
- (技師)化學(xué)檢驗(yàn)工職業(yè)技能鑒定理論考試題庫(kù)(含答案)
- 年產(chǎn)1000噸納米復(fù)合氧化鋯項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 2025年江西外語(yǔ)外貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年新疆工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 幼兒園月亮故事活動(dòng)策劃方案五篇
- 標(biāo)線承包合同范本
- 精準(zhǔn)醫(yī)療項(xiàng)目研發(fā)合作合同
- 麻雀的聽(tīng)評(píng)課記錄
- 承攬貨物運(yùn)輸合同范本
- 房地產(chǎn)調(diào)控政策解讀
- 產(chǎn)前診斷室護(hù)理工作總結(jié)
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)人教版上冊(cè)寒假作業(yè)(綜合復(fù)習(xí)能力提升篇)(含答案)
- 《AP內(nèi)容介紹》課件
- 醫(yī)生定期考核簡(jiǎn)易程序述職報(bào)告范文(10篇)
- 安全創(chuàng)新創(chuàng)效
- 《中國(guó)糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 初級(jí)創(chuàng)傷救治課件
- 2024年社會(huì)工作者(中級(jí))-社會(huì)綜合能力考試歷年真題可打印
- 《處理人際關(guān)系》課件
- 五年級(jí)行程問(wèn)題應(yīng)用題100道
評(píng)論
0/150
提交評(píng)論