《計(jì)算機(jī)圖形學(xué)基礎(chǔ)與CAD開發(fā)》課件-第3章 二維圖形處理技術(shù)_第1頁(yè)
《計(jì)算機(jī)圖形學(xué)基礎(chǔ)與CAD開發(fā)》課件-第3章 二維圖形處理技術(shù)_第2頁(yè)
《計(jì)算機(jī)圖形學(xué)基礎(chǔ)與CAD開發(fā)》課件-第3章 二維圖形處理技術(shù)_第3頁(yè)
《計(jì)算機(jī)圖形學(xué)基礎(chǔ)與CAD開發(fā)》課件-第3章 二維圖形處理技術(shù)_第4頁(yè)
《計(jì)算機(jī)圖形學(xué)基礎(chǔ)與CAD開發(fā)》課件-第3章 二維圖形處理技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章二維圖形生成與圖形處理3.1圖形坐標(biāo)系3.2字符的生成3.3直線的生成3.5

二維圖形的幾何變換3.6

窗口到視區(qū)的變換3.7二維圖形的裁剪算法

3.8區(qū)域填充算法世界坐標(biāo)系

初始的笛卡爾坐標(biāo)系,可以是二維也可以是三維的。取值范圍為整個(gè)實(shí)數(shù)域,也可根據(jù)需要設(shè)定。用戶坐標(biāo)系

用戶在世界坐標(biāo)系下建立的直角坐標(biāo)系。位置、方向任意。3.1圖形坐標(biāo)系4.規(guī)范化設(shè)備坐標(biāo)系

將所有設(shè)備坐標(biāo)系的數(shù)據(jù)化為統(tǒng)一的數(shù)據(jù)范圍。比如x(0.0,1.0),y(0.0,1.0),z(0.0,1.0)。對(duì)于每種設(shè)備來說,設(shè)備坐標(biāo)系與規(guī)范化坐標(biāo)系之間的坐標(biāo)值相差一個(gè)比例系數(shù)。這種規(guī)范化便于設(shè)備間的數(shù)據(jù)通信,要輸出到具體設(shè)備只要乘上該設(shè)備的規(guī)范化比例因子即可。

設(shè)備坐標(biāo)系

與圖形設(shè)備關(guān)聯(lián)的坐標(biāo)系。通常是二維的,個(gè)別有三維的(如三維雕刻機(jī)、打印機(jī))。取值范圍是某個(gè)整數(shù)域。如:分辨率是1024×768的顯示器,則坐標(biāo)系x:(0,1023,)y:(0,767),單位是像素;幅面為385×280的繪圖機(jī),步距(分辨率)為0.1mm,則設(shè)備坐標(biāo)系為x:(0,3850)y:(0,2800).5.圓柱面坐標(biāo)系

使用(r,Φ,z).

ρ、φ為空間點(diǎn)在XOY平面上投影的極坐標(biāo)(r為極徑,φ為極角),z為空間點(diǎn)到XOY平面的距離。球面坐標(biāo)系使用(

r,θ,φ).

r為空間點(diǎn)到原點(diǎn)的距離,φ為以X軸正向起度量的經(jīng)度角,θ為以Z軸正向起度量的緯度角)。

Back2.2字符的生成

1.字符的分類

生成方式有點(diǎn)陣式和矢量式兩種。(1)點(diǎn)陣式是用像素點(diǎn)陣拼成字符。它可以通過硬件和軟件來實(shí)現(xiàn),在顯示卡內(nèi)字符發(fā)生器里存放256個(gè)ASCII字符的位圖編碼。

2.2字符的生成

1.字符的生成

(2)矢量式字符是根據(jù)一定的數(shù)學(xué)模型,把每個(gè)字符的筆畫分解成數(shù)學(xué)模型中定義好的各種直線和曲線,然后記錄這些直線和曲線的參數(shù)。顯示時(shí)根據(jù)尺寸大小和參數(shù)繪制出字符。常見的矢量字庫(kù)有Type1字庫(kù)和Truetype字庫(kù)。

2.2字符的生成2.點(diǎn)陣字符與矢量字符的特點(diǎn)

(1)變換:點(diǎn)陣字符的變換需要對(duì)字符位圖的每個(gè)像素進(jìn)行變換,而矢量字符的變換只需對(duì)其筆畫端點(diǎn)進(jìn)行變換。點(diǎn)陣字庫(kù)存儲(chǔ)量大、變換速度慢;矢量字庫(kù)存儲(chǔ)量小,變換方便快速。

(2)顯示速度和效果:顯示速度快,但在縮放的情況下容易出現(xiàn)鋸齒;矢量字庫(kù)顯示效果平滑,顯示效果平滑,但相對(duì)而言需要經(jīng)過一系列的數(shù)學(xué)運(yùn)算并光柵化后才能顯示,顯示速度相對(duì)慢。

Back3.3直線的生成算法直線的生成算法,也可解決曲線的繪制(曲線由多段直線逼近)直線的生成算法:

像素化算法:用于點(diǎn)陣顯示設(shè)備及繪圖設(shè)備的直線生成,如DDA法、Bresenham法。

矢量化算法:用于筆式繪圖機(jī)繪制直線,線切割機(jī)床、刻字機(jī)等設(shè)備加工直線,如逐點(diǎn)比較法、正負(fù)法等。像素化算法(直線的像素化):用一系列靠近直線的像素點(diǎn)逼近直線。(1)(2)直線像素化的基本要求:

(1)

直線要直;

(2)

起點(diǎn)、終點(diǎn)位置盡可能準(zhǔn)確;

(3)

直線上亮度盡可能均勻;

(4)繪制效率高。像素化算法(直線的像素化):

1.像素化直線生成算法--DDA(DigitalDifferentialAnalyzer)法,即為數(shù)字微分分析法,基本原理如下:直線微分方程像素化得到坐標(biāo)點(diǎn)的遞推公式對(duì)稱DDA法簡(jiǎn)單DDA法(1)直線微分方程為:(Δx=xb-xa,Δy=yb-ya)

(xa,ya)、(xb

yb)為直線起點(diǎn)和終點(diǎn)坐標(biāo)。

(2)將上式數(shù)字化(即像素化),得出下面的遞推公式:當(dāng)ε取不同值時(shí),便形成對(duì)稱DDA法和簡(jiǎn)單DDA法。

對(duì)稱DDA法

取ε=2-n,n由下面關(guān)系式?jīng)Q定:

2n-1≤Max(|Δx|,|Δy|)≤2n,n為正整數(shù)

計(jì)算點(diǎn)的公式為

x1=xa+0.5,y1=ya+0.5xi+1=xi+ε·Δx,yi+1=yi+ε·Δyxis=[xi],yis=[yi]i=1,2,…,2n取整,得到顯示坐標(biāo),即像素點(diǎn)坐標(biāo)四舍五入法【例2.1】用對(duì)稱DDA法在起點(diǎn)A(2,1)和終點(diǎn)B(12,7)之間生成一段直線。解:(1)計(jì)算初值Δx、Δy、n。Δx=10,Δy=6,n=4。(2)按遞推公式循環(huán)計(jì)算點(diǎn)的坐標(biāo),并取整顯示。ε=2-n=1/162n-1≤Max(|Δx|,|Δy|)≤2n對(duì)稱DDA法計(jì)算過程對(duì)稱DDA法生成的直線簡(jiǎn)單DDA法

取ε=1/l,l=Max(|Δx|,|Δy|)。

計(jì)算點(diǎn)的公式為i=1,2,…,l簡(jiǎn)單DDA法生成的直線對(duì)稱DDA法簡(jiǎn)單DDA法3.5二維圖形幾何變換

2.4.1基本變換

1.比例變換

比例變換就是將圖形放大或縮小若干倍。

通過對(duì)平面上任意一點(diǎn)的x坐標(biāo)及y坐標(biāo)分別乘以比例因子a和d來實(shí)現(xiàn),即用矩陣運(yùn)算表示為:其中

T=稱為比例變換矩陣。

變換后的新坐標(biāo)變換前的坐標(biāo)

平面圖形的比例變換

等比變化(a=d)不等比變化(a=1d=3)2.旋轉(zhuǎn)變換平面上一點(diǎn)P(x,y)繞原點(diǎn)逆時(shí)針旋轉(zhuǎn)θ角后變?yōu)镻*(x*,

y*),由幾何關(guān)系推出:x*=xcosθ-ysinθy*=xsinθ+ycosθ

用矩陣運(yùn)算表示為

平面圖形的旋轉(zhuǎn)變換

旋轉(zhuǎn)變換矩陣:T=

3.對(duì)稱(反射)變換使變換前后的圖形相對(duì)于某一條線或原點(diǎn)對(duì)稱的變換叫對(duì)稱變換。關(guān)于一條線的對(duì)稱變換也稱鏡像變換。(a)Y軸對(duì)稱變換;(b)X軸對(duì)稱變換;(c)原點(diǎn)對(duì)稱變換x*=-xy*=y

(1)對(duì)稱于Y軸的變換用矩陣運(yùn)算表示為:對(duì)稱于Y軸的變換矩陣為:T=(2)對(duì)稱于X軸的變換x*=xy*=-y

用矩陣運(yùn)算表示為對(duì)稱于X軸的變換矩陣為:T=

(3)對(duì)稱于原點(diǎn)的變換

點(diǎn)對(duì)稱于原點(diǎn)變換后僅改變x、y坐標(biāo)值的符號(hào),即x*=-xy*=-y

用矩陣運(yùn)算表示為對(duì)稱于X軸的變換矩陣為:T=4.錯(cuò)切變換錯(cuò)切變換就是圖形沿某一坐標(biāo)方向產(chǎn)生不等量的移動(dòng),使圖形變形。

(1)沿X方向錯(cuò)切變換:

正方形ABCD沿X方向錯(cuò)切成平行四邊形A*B*C*D*

。錯(cuò)切后圖形與Y軸間有一錯(cuò)切角θ。

(2)沿Y方向錯(cuò)切變換:

正方形ABCD圖形沿Y方向錯(cuò)切后與X軸之間形成錯(cuò)切角θ,錯(cuò)切成平行四邊形A*1B*1C*1D*1。

平面圖形的錯(cuò)切變換x*=x+ytanθ=x+cy

y*=y

??水平錯(cuò)切豎直錯(cuò)切x*=xy*=y+xtanθ=y+bxX向錯(cuò)切用矩陣運(yùn)算表示為

Y向錯(cuò)切用矩陣運(yùn)算表示為

C

5.平移變換

平移變換就是圖形沿X方向移動(dòng)l,沿Y方向移動(dòng)m,其形狀不變,各點(diǎn)的坐標(biāo)分別增加了平移量l和m,即x*=x+ly*=y+m

平移變換用矩陣運(yùn)算表示為:

x*=x+ly*=y+m

為了方便,把前面所述的變換矩陣統(tǒng)一用T3×3矩陣表示:

因此,可得到二維圖形變換矩陣的一般式:比例、對(duì)稱、錯(cuò)切、旋轉(zhuǎn)平移

齊次坐標(biāo)

用[xy1]表示平面上的一點(diǎn),解決了平移變換的矩陣表示,使各種變換矩陣形式統(tǒng)一為T3×3的方陣。[xy1]稱為二維點(diǎn)的齊次坐標(biāo)形式。齊次坐標(biāo)表示法:用n+1維向量表示n維向量的方法

二維點(diǎn)用齊次坐標(biāo)表示的一般形式:

[HXHYH](H/=0)

如:[1284][642][321]均表示同一個(gè)二維點(diǎn)。

[HXHYH](H/=0)[XY1]齊次坐標(biāo)正?;?/p>

H=1的齊次坐標(biāo)點(diǎn)

T3×3方陣中,第三列元素p、q在變換中的作用:

使方陣中的a=d=1,其余元素為0,即設(shè)對(duì)某點(diǎn)進(jìn)行變換,其矩陣運(yùn)算為:

qq

變換后各點(diǎn)的x、y坐標(biāo)不變,第三列元素H=px+qx+s。

這相當(dāng)于把H=1平面上的點(diǎn)變到了H=px+qy+s的空間一般位置平面上。AA1A’q

空間一般位置平面在X、Y、H軸上的截距可以求出:

x=y=0時(shí),H=sy=H=0時(shí),

x=H=0時(shí),H=px+qy+s將位于一般位置平面的點(diǎn)正?;℉=1):齊次化后的點(diǎn)在哪里?

齊次坐標(biāo)正?;?/p>

齊次坐標(biāo)正?;瘞缀我饬x:將位于一般位置的點(diǎn)A’再次變換到H=1的平面上。

可以證明,齊次化后的A*點(diǎn)是A’與原點(diǎn)O的連線與H=1平面的交點(diǎn)。齊次化后的點(diǎn)由圖得出,△AA′O∽△A2A*O,則因?yàn)锳2A*=1AA′=px+qy+s所以同理可證

p、q兩元素的作用:

在H=1的平面上產(chǎn)生一個(gè)以O(shè)為中心的中心投影變換—透視投影變換。qabcdlm比例、對(duì)稱、錯(cuò)切、旋轉(zhuǎn)平移透視變換整體縮放二維圖形基本變換矩陣的一般式:

3.5.2組合變換組合變換:通過一系列的基本變換的組合而成。解決這一類問題的關(guān)鍵是:

(1)確定圖形變換是由哪些基本變換?組合變換是按照什么樣的變換順序形成?(2)按變換順序求出基本變換矩陣的乘積得到組合變換矩陣。

【例3.1】如圖所示,△ABC繞原點(diǎn)之外的任意點(diǎn)P(m,n)逆時(shí)針旋轉(zhuǎn)θ角到△A*B*C*,求其變換矩陣。

解:

(1)把旋轉(zhuǎn)中心P平移到坐標(biāo)原點(diǎn),其變換矩陣為(2)使平移后的圖形繞原點(diǎn)逆時(shí)針旋轉(zhuǎn)θ角

(3)再把旋轉(zhuǎn)中心平移回原來位置P(m,n)處,變換矩陣:

以上三種變換的組合變換矩陣:

注意:變換順序不同,組合變換結(jié)果不同。因?yàn)榫仃囅喑瞬环辖粨Q律?!纠?.2】推導(dǎo)圖形關(guān)于鏡像線ax+by+c=0鏡像變換前后坐標(biāo)之間的關(guān)系式。

五個(gè)變換的變換矩陣依次為

T1、T2、T3、T4、T5:組合變換矩陣為:結(jié)果為x*y*[1]=[x

y1]X鏡像后的坐標(biāo)x*和y*用[x

y1]·T求出:1.簡(jiǎn)述計(jì)算機(jī)圖形學(xué)中采用的坐標(biāo)系。2.分別用簡(jiǎn)單DDA和對(duì)稱DDA法在起點(diǎn)(1,1),終點(diǎn)(17,14)之間生成直線,并比較兩種直線生成算法的優(yōu)劣。4.什么是圖形變換?圖形變換的實(shí)質(zhì)是什么?5.什么是齊次坐標(biāo)?為什么引入齊次坐標(biāo)?6.二維圖形基本變換的一般形式是什么?各元素的作用是什么?7.二維圖形的基本變換都有哪些?寫出它們的變換矩陣。8.什么是組合變換矩陣?若一個(gè)二維圖形繞平面上一個(gè)點(diǎn)A(x,y)順時(shí)針旋轉(zhuǎn)ɑ角度,其經(jīng)歷了什么樣的變換過程?寫出其變換矩陣。作業(yè)3.6窗口到視區(qū)的變換

通常是在世界坐標(biāo)系中描述圖形。為了把所描述的圖形全部或部分地顯示在屏幕上,必須將世界坐標(biāo)轉(zhuǎn)換為顯示設(shè)備的屏幕坐標(biāo)。

轉(zhuǎn)換時(shí)需要在世界坐標(biāo)系中定義一個(gè)平行于坐標(biāo)軸的矩形窗口,框住自己感興趣的圖形區(qū)域,然后映射到屏幕視區(qū)中顯示。

屏幕視區(qū)也是一個(gè)矩形區(qū)域,用屏幕坐標(biāo)給出。

窗口到視區(qū)的變換

(a)世界坐標(biāo)系;(b)屏幕坐標(biāo)系

把窗口內(nèi)的圖形映射到視區(qū)中顯示,實(shí)質(zhì)上也是一種圖形變換。

設(shè)世界坐標(biāo)系下的點(diǎn)為(xw,yw),映射到屏幕視區(qū)中為(xs,ys),其變換關(guān)系式:設(shè)則(xs,ys)與(xw,yw)間的變換關(guān)系為xs=a·xw+mys=d·yw+n

a001d0mn1T=3.7二維圖形的裁剪算法

裁減處理的原理就是對(duì)點(diǎn)在窗口內(nèi)外的判斷以及交點(diǎn)的計(jì)算。但因涉及的圖形元素較多,裁減算法的速度(效率)是需考慮的重要問題。本節(jié)主要學(xué)習(xí):

直線段裁減算法(編碼裁減法、中點(diǎn)裁減法等)多邊形裁減算法3.7.1直線段的裁剪

點(diǎn)在窗口內(nèi)的條件:

xL<=x<=xRyB<=y<=yT

線段相對(duì)于窗口的位置有下面三種情況:(1)線段在窗外同側(cè),如線段a,應(yīng)舍去。

(2)線段在窗內(nèi),如線段b,應(yīng)保留。

(3)線段與窗口邊界相交,或線段在窗外兩側(cè),如線段c、d和e,它們可能有一部分在窗內(nèi),也可能全部在窗外。

1.編碼裁剪法(由Cohen和Sutherland兩人提出的)

(1)矩形窗口的四條邊界xL=xmin,xR=xmax,yT=ymax,yB=ymin,延長(zhǎng)后,將圖形所在的平面分成九個(gè)區(qū)域,每個(gè)區(qū)域內(nèi)的點(diǎn)都有一個(gè)四位二進(jìn)制編碼對(duì)應(yīng)。即C4C3C2C1,其含義為:

x<xmin,C1=1;否則C1=0

x>xmax,C2=1;否則C2=0

y<ymin,C3=1;否則C3=0

y>ymax,C4=1;否則C4=0

xmin

xmaxymaxymin九個(gè)區(qū)域四位二進(jìn)制編碼

(2)編碼裁剪算法流程P1=p2=0000P1^p2/=0000取窗外一點(diǎn)P1,根據(jù)編碼確定在那條邊界線外,求出與其邊界交點(diǎn)p,舍去P1P,令P1=P;保留P1P2舍去P1P2YYNN結(jié)束

2.中點(diǎn)再分裁剪法中點(diǎn)再分裁剪法是用不斷對(duì)分線段的方法排斥線段在窗口外的部分,最后求出離線段的一個(gè)端點(diǎn)最遠(yuǎn)的在窗內(nèi)的點(diǎn)(可見點(diǎn))。

中點(diǎn)再分裁剪法

P1最遠(yuǎn)點(diǎn)

P2最遠(yuǎn)點(diǎn)離線段的一個(gè)端點(diǎn)最遠(yuǎn)的在窗內(nèi)的點(diǎn)(可見點(diǎn))。

2.中點(diǎn)再分裁剪法中點(diǎn)再分裁剪法是用不斷對(duì)分線段的方法排斥線段在窗口外的部分,最后求出離線段的一個(gè)端點(diǎn)最遠(yuǎn)的在窗內(nèi)的點(diǎn)(可見點(diǎn))。算法分別從線段的兩個(gè)端點(diǎn)出發(fā)作相同的處理。得到的兩個(gè)最遠(yuǎn)可見點(diǎn)之間的線段在窗內(nèi),應(yīng)保留。

例如,要裁剪的線段是P1P2,求離點(diǎn)P1最遠(yuǎn)的可見點(diǎn)的算法步驟為:(1)測(cè)試P2是否在窗口內(nèi),若是,則P2就是離P1最遠(yuǎn)的可見點(diǎn),結(jié)束。否則,進(jìn)行下一步。

最遠(yuǎn)可見點(diǎn)p1p2p1p2

例如,要裁剪的線段是P1P2,求離點(diǎn)P1最遠(yuǎn)的可見點(diǎn)的算法步驟為:(1)測(cè)試P2是否在窗口內(nèi),若是,則P2就是離P1最遠(yuǎn)的可見點(diǎn),結(jié)束。否則,進(jìn)行下一步。

(2)測(cè)試P1P2是否在窗外同側(cè),若是,P1P2全部不可見,結(jié)束。否則,進(jìn)行下一步。

窗外同側(cè)p1p2p1p2

例如,要裁剪的線段是P1P2,求離點(diǎn)P1最遠(yuǎn)的可見點(diǎn)的算法步驟為:(1)測(cè)試P2是否在窗口內(nèi),若是,則P2就是離P1最遠(yuǎn)的可見點(diǎn),結(jié)束。否則,進(jìn)行下一步。

(2)測(cè)試P1P2是否在窗外同側(cè),若是,P1P2全部不可見,結(jié)束。否則,進(jìn)行下一步。

(3)取P1P2的中點(diǎn)Pm,若PmP2在窗外同側(cè),舍去,剩余段以P2代替Pm,

重復(fù)步驟(2)。否則,以P1代替Pm重復(fù)步驟(2)。直到線段不能再分為止。

中點(diǎn)再分裁剪法

p1p2若PmP2在窗外同側(cè),舍去,剩余段以P2代替Pmpm若PmP2在異側(cè),以P1代替Pmp2中點(diǎn)再分裁剪法

p1p2pm若PmP2在異側(cè),以P1代替Pm最遠(yuǎn)可見點(diǎn)

例如要裁剪的線段是P1P2,求離點(diǎn)P1最遠(yuǎn)的可見點(diǎn)的算法步驟為:(1)測(cè)試P2是否在窗口內(nèi),若是,則P2就是離P1最遠(yuǎn)的可見點(diǎn),結(jié)束。否則,進(jìn)行下一步。

(2)測(cè)試P1P2是否在窗外同側(cè),若是,P1P2全部不可見,結(jié)束。否則,進(jìn)行下一步。

(3)取P1P2的中點(diǎn)Pm,若PmP2在窗外同側(cè),舍去,剩余段以P2代替Pm,

重復(fù)步驟(2)。否則,以P1代替Pm重復(fù)步驟(2)。直到線段不能再分為止。取中點(diǎn)的目的是用中點(diǎn)逼近線段與邊界的交點(diǎn)。3.7二維圖形的裁剪算法

裁減處理的原理就是對(duì)點(diǎn)在窗口內(nèi)外的判斷以及交點(diǎn)的計(jì)算。但因涉及的圖形元素較多,裁減算法的速度(效率)是需考慮的重要問題。本節(jié)主要學(xué)習(xí):

直線段裁減算法(編碼裁減法、中點(diǎn)裁減法等)多邊形裁減算法

3.7.2多邊形的裁剪直線段裁剪法可以解決折線以及封閉折線(多邊形)的裁剪問題。對(duì)多邊形區(qū)域(如區(qū)域填充的多邊形)的裁剪則不適用。多邊形區(qū)域裁剪后應(yīng)該仍然是多邊形區(qū)域,裁剪后的多邊形區(qū)域的邊界由原來多邊形經(jīng)裁剪的線段及窗口區(qū)域的若干段邊界組成。

多邊形裁剪SutherlandHodgman算法是適合凸多邊形的一種逐邊裁剪算法凸多邊形

多邊形邊界線段的連接正確不正確

用計(jì)算機(jī)處理時(shí),選擇窗口邊界線段去形成封閉的多邊形區(qū)域是關(guān)鍵問題,選得不當(dāng)會(huì)產(chǎn)生錯(cuò)誤。逐邊裁剪法算法思想:

假定裁剪區(qū)域是矩形窗口區(qū)域,被裁剪的多邊形頂點(diǎn)序列為A1A2…An。算法的思想是用窗口的四條邊界直線Lj(j=1,2,3,4)依次裁剪四次。

裁剪時(shí),對(duì)多邊形的各個(gè)頂點(diǎn)Ai(i=1,2,…,n)測(cè)試各邊Ai-1Ai(令A(yù)o=An)與窗口邊界Lj是否相交,若相交求出交點(diǎn)Bi-1作為輸出頂點(diǎn)。再判斷Ai本身是否在窗口邊界的可見側(cè)(窗口左邊界之右為可見側(cè),右邊界之左為可見側(cè),……),若在,也作為輸出頂點(diǎn),否則舍去。裁剪時(shí),對(duì)多邊形的各個(gè)頂點(diǎn)Ai(i=1,2,…,n)測(cè)試各邊Ai-1Ai(令A(yù)o=An)與窗口邊界Lj是否相交,若相交求出交點(diǎn)Bi-1作為輸出頂點(diǎn)。再判斷Ai本身是否在窗口邊界的可見側(cè)(窗口左邊界之右為可見側(cè),右邊界之左為可見側(cè),……),若在,也作為輸出頂點(diǎn),否則舍去。

對(duì)窗口邊界Lj裁剪的輸出又作為對(duì)下一條窗口邊界Lj+1裁剪的輸入。經(jīng)過四次,就得到所要的結(jié)果。SutherlandHodgman算法(a)A1A2A3A4A5

輸出B1A2A3A4B4(b)A1A2A3A4A5

輸出B2A3A4A5B5(c)A1A2A3A4A5

輸出A1B1B2A3A4A5(d)A1A2A3A4A5A6

輸出A1A2A3B3B5A6作業(yè)直線段裁剪算法和多邊形裁剪算法的本質(zhì)區(qū)別是什么?總結(jié)編碼裁剪算法和中點(diǎn)裁剪算法的特點(diǎn)。3.查閱資料,了解總結(jié)其他相關(guān)的直線段裁剪算法和多邊形裁剪算法的思想及應(yīng)用。3.8區(qū)域填充算法

區(qū)域填充是指在給出的封閉區(qū)域內(nèi)填充某種顏色或者圖案。

區(qū)域填充算法分為基于像素的填充算法和基于矢量的填充算法兩類。其中:

基于像素的填充算法包括掃描線填充算法、種子填充算法以及由這兩種算法派生的一些算法,這類算法可實(shí)現(xiàn)圖案和顏色的填充;

基于矢量的填充算法是指如剖面線填充算法以及由此派生的一些算法,這類算法適用于圖案填充。

本節(jié)介紹以基于矢量填充算法為基礎(chǔ)的剖面線填充算法,它也是復(fù)雜圖案填充的基礎(chǔ)。1.繪制剖面線需解決的問題

剖面線是一簇同方向、間隔相等的細(xì)實(shí)線。用計(jì)算機(jī)模擬人工繪制,每畫一條剖面線必須具備以下條件:

(1)剖面線的端點(diǎn)坐標(biāo)。

(2)剖面線的連線順序及抬、落筆狀態(tài)。

2.剖面線

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論