




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章、圖元屬性v線屬性v曲線屬性v區(qū)域填充屬性v反走樣屬性屬性參數(shù)v定義任何影響圖元顯示方式的參數(shù)。 第四章、圖元屬性v線屬性v曲線屬性v區(qū)域填充屬性v反走樣屬性線屬性v線型:實(shí)線、虛線、點(diǎn)線v線寬v線帽v線色線屬性v線型 實(shí)線、虛線、點(diǎn)線 掩模線屬性v問題:在不同的直線方向生成不等長(zhǎng)劃線。v解決:根據(jù)直線的斜率調(diào)整實(shí)心段和空白段的像素?cái)?shù)目。線屬性v線型:實(shí)線、虛線、點(diǎn)線v線寬v線帽v線色線屬性v線寬顯示相鄰的平行線線屬性v線寬線屬性v粗折線 生成粗折線需要一些額外的處理。通常,顯示單根線段的方法不能平滑生成一系列折線段。v三種方法 斜角鏈接 圓角鏈接 斜切鏈接線屬性v線型:實(shí)線、虛線、點(diǎn)線
2、v線寬v線帽v線色線屬性v線帽通過添加“線帽”來調(diào)整線端的形狀以給出較好看的外觀。線帽有方帽、原帽、凸方帽線屬性v線型:實(shí)線、虛線、點(diǎn)線v線寬v線帽v線色第四章、圖元屬性v線屬性v曲線屬性v區(qū)域填充屬性v反走樣屬性曲線屬性v線型v線寬v顏色曲線屬性v線型像素掩模:11100根據(jù)曲線斜率設(shè)置像素掩模的實(shí)心段和空白段像素?cái)?shù)目曲線屬性v線寬|m|1時(shí)繪制垂直段像素曲線屬性v 填充平行曲線路徑之間的區(qū)域曲線屬性v 畫筆和畫刷第四章、圖元屬性v線屬性v曲線屬性v區(qū)域填充屬性v反走樣屬性區(qū)域填充屬性v 填充模式v 顏色調(diào)和填充區(qū)域v 掃描線填充算法v 不規(guī)則邊界區(qū)域填充算法區(qū)域填充屬性v 填充模式區(qū)域填充
3、屬性v 顏色調(diào)和填充區(qū)域?qū)⑻畛鋱D案和背景色混合,圖畫與背景色混合時(shí)使用透明因子來確定背景中的顏色有多少應(yīng)該混合到對(duì)象顏色中。v 線型軟填充算法 P=tF+(1-t)B與或異或取代區(qū)域填充屬性v 掃描線填充算法用水平掃描線從上到下(或從下到上)掃描由多條首尾相連的線段構(gòu)成的多邊形,每根掃描線與多邊形的某些邊產(chǎn)生一系列交點(diǎn)。將這些交點(diǎn)按照x坐標(biāo)排序,將排序后的點(diǎn)兩兩成對(duì),作為線段的兩個(gè)端點(diǎn),以所填的顏色畫水平直線。多邊形被掃描完畢后,顏色填充也就完成了。區(qū)域填充屬性v 掃描線填充算法Step1:求交,計(jì)算掃描線與多邊形的交點(diǎn)Step2:交點(diǎn)排序,對(duì)第1步得到的交點(diǎn)按照x值從小到大進(jìn)行排序Step3
4、:顏色填充,對(duì)排序后的交點(diǎn)兩兩組成一個(gè)水平線段,以畫線段的方式進(jìn)行顏色填充Step4:是否完成多邊形掃描?如果是就結(jié)束算法,如果不是就改變掃描 線,然后轉(zhuǎn)第1步繼續(xù)處理v 問題:對(duì)于每一條掃描線,如果每次都按照正常的線段求交算法進(jìn)行計(jì)算,則計(jì)算量大,而且效率底下。區(qū)域填充屬性v 掃描線與多邊形交點(diǎn)的特點(diǎn) 每次只有相關(guān)的幾條邊可能與掃描線有交點(diǎn),不必對(duì)所有的邊進(jìn)行求交計(jì)算 相鄰的掃描線與同一直線段的交點(diǎn)存在步進(jìn)關(guān)系,這個(gè)關(guān)系與直線段所在直線的斜率有關(guān)v 對(duì)應(yīng)方法 掃描線算法需要維護(hù)一張由“活動(dòng)邊”組成的表,稱為“活動(dòng)邊表(AET)” 通過直線段求交算法計(jì)算出來,得到交點(diǎn)的坐標(biāo)為(x, y),則下
5、一條掃描線與這條邊的交點(diǎn)不需要再求交計(jì)算,通過步進(jìn)關(guān)系可以直接得到新交點(diǎn)坐標(biāo)為(x + x, y + 1), x=1/m區(qū)域填充屬性v 活動(dòng)邊表算法 typedef struct tagEDGE double xi; double dx; int ymax;EDGE;一條邊不會(huì)一直待在“活動(dòng)邊表”中,當(dāng)掃描線與之沒有交點(diǎn)時(shí),要將其從“活動(dòng)邊表”中刪除,判斷是否有交點(diǎn)的依據(jù)就是看掃描線y是否大于這條邊兩個(gè)端點(diǎn)的y坐標(biāo)值。區(qū)域填充屬性v 新邊表“新邊表”通常在算法開始時(shí)建立,建立“新邊表”的規(guī)則就是:如果某條邊的較低端點(diǎn)(y坐標(biāo)較小的那個(gè)點(diǎn))的y坐標(biāo)與掃描線y相等,則該邊就是掃描線y的新邊,應(yīng)該加
6、入掃描線y的“新邊表”。簡(jiǎn)單說就是:存放該掃描線第一次出現(xiàn)的邊。v 新邊表與活動(dòng)邊表當(dāng)算法處理到某條掃描線時(shí),就將這條掃描線的“新邊表”中的所有邊逐一插入到“活動(dòng)邊表”中。 區(qū)域填充屬性v 上例中各掃描線的“新邊表”如下圖所示: 區(qū)域填充屬性v 掃描線填充算法改進(jìn)Step1:構(gòu)建新邊表Step2:將活動(dòng)邊表中ymax當(dāng)前掃描線的邊從活動(dòng)邊表中刪除Step3:將掃描線對(duì)應(yīng)新邊表中的邊信息加入到活動(dòng)邊表Step4:根據(jù)步進(jìn)關(guān)系計(jì)算掃描線與活動(dòng)部的交點(diǎn)Step5:交點(diǎn)排序,對(duì)第1步得到的交點(diǎn)按照x值從小到大進(jìn)行排序Step6:顏色填充,對(duì)排序后的交點(diǎn)兩兩組成一個(gè)水平線段,以畫 線段的方式進(jìn)行顏色填充
7、Step7:是否完成多邊形掃描?如果是就結(jié)束算法,如果不是就改 變掃描線,然后轉(zhuǎn)第2步繼續(xù)處理區(qū)域填充屬性v 多邊形頂點(diǎn)的處理 在對(duì)多邊形的邊進(jìn)行求交的過程中,在兩條邊相連的頂點(diǎn)處會(huì)出現(xiàn)一些特殊情況,因?yàn)榇藭r(shí)兩條邊會(huì)和掃描線各求的一個(gè)交點(diǎn),也就是說,在頂點(diǎn)位置會(huì)出現(xiàn)兩個(gè)交點(diǎn)。當(dāng)出現(xiàn)這種情況的時(shí)候,會(huì)對(duì)填充產(chǎn)生影響,因?yàn)樘畛涞倪^程是成對(duì)選擇交點(diǎn)的過程,錯(cuò)誤的計(jì)算交點(diǎn)個(gè)數(shù),會(huì)造成填充異常。 區(qū)域填充屬性v 左頂點(diǎn)P1、P2和P3的y坐標(biāo)滿足條件 :y1 y2 y2 y3v 上頂點(diǎn)P1、P2和P3的y坐標(biāo)滿足條件 :y2 y1 & y2 y3v 下頂點(diǎn)P1、P2和P3的y坐標(biāo)滿足條件 :y2
8、 y1 & y2 y3 區(qū)域填充屬性v 對(duì)于左頂點(diǎn)和右頂點(diǎn)如果不做特殊處理會(huì)導(dǎo)致奇偶奇數(shù)錯(cuò)誤,常采用的修正方法是修改以頂點(diǎn)為終點(diǎn)的那條邊的區(qū)間,將頂點(diǎn)排除在區(qū)間之外,也就是刪除這條邊的終點(diǎn),這樣在計(jì)算交點(diǎn)時(shí),就可以少計(jì)算一個(gè)交點(diǎn),平衡和交點(diǎn)奇偶個(gè)數(shù)。結(jié)合前文定義的“邊”數(shù)據(jù)結(jié)構(gòu):EDGE,只要將該邊的ymax修改為ymax 1就可以了。v 對(duì)于上頂點(diǎn)和下頂點(diǎn)一種處理方法是將交點(diǎn)計(jì)算做0個(gè),也就是修正兩條邊的區(qū)間,將交點(diǎn)從兩條邊中排除;另一種處理方法是不做特殊處理,就計(jì)算2個(gè)交點(diǎn),這樣也能保證交點(diǎn)奇偶個(gè)數(shù)平衡。 區(qū)域填充屬性v 水平線的處理水平邊與掃描線重合,會(huì)產(chǎn)生很多交點(diǎn),通常的做法是
9、將水平邊直接畫出(填充),然后在后面的處理中就忽略水平邊,不對(duì)其進(jìn)行求交計(jì)算。v 如何避免填充越過邊界線 邊界像素的取舍問題也需要特別注意。多邊形的邊界與掃描線會(huì)產(chǎn)生兩個(gè)交點(diǎn),填充時(shí)如果對(duì)兩個(gè)交點(diǎn)以及之間的區(qū)域都填充,容易造成填充范圍擴(kuò)大,影響最終光柵圖形化顯示的填充效果。為此,人們提出了“左閉右開”的原則,簡(jiǎn)單解釋就是,如果掃描線交點(diǎn)是1和9,則實(shí)際填充的區(qū)間是1,9),即不包括x坐標(biāo)是9的那個(gè)點(diǎn)。 區(qū)域填充屬性v 不規(guī)則邊界區(qū)域填充算法從區(qū)域內(nèi)的一個(gè)內(nèi)部點(diǎn)開始,由內(nèi)向外逐點(diǎn)繪制直到邊界。 邊界填充算法 像素填充算法區(qū)域填充屬性v 邊界填充算法邊界填充算法從一個(gè)內(nèi)點(diǎn) (x,y)開始檢查相鄰位
10、置的顏色。如果檢查位置不是該邊界顏色,就將它改為填充顏色,并再檢測(cè)其相鄰位置。這個(gè)過程延續(xù)到檢測(cè)完邊界顏色范圍內(nèi)的所有像素為止。v 算法的輸入:種子點(diǎn)坐標(biāo)(x,y),填充色和邊界顏色v 填充方法:4/8連通區(qū)域填充算法區(qū)域填充屬性v4連通區(qū)域填充遞歸算法void boundaryFill4(int x, int y, int fillColor, int borderColor)int interiorColor;interiorColor = getPixel(x, y);if(interiorColor != borderColor) & (interiorColor != fil
11、lColor)setPixel(x, y);boundaryFill4(x+1, y, fillColor, borderColor);boundaryFill4(x-1, y, fillColor, borderColor);boundaryFill4(x, y+1, fillColor, borderColor);boundaryFill4(x, y-1, fillColor, borderColor);。區(qū)域填充屬性v4/8連通區(qū)域填充算法的問題 假如內(nèi)部存在像素的顏色是填充顏色,則算法不能正確的填充整個(gè)區(qū)域。 存在大量的遞歸調(diào)用,算法性能過低。v 改進(jìn) 在填充顏色前,先將區(qū)域內(nèi)的填充色
12、像素的顏色修改。 通過沿掃描線填充水平像素段,來代替處理4-鄰接點(diǎn)和8-鄰接點(diǎn)區(qū)域填充屬性v掃描線邊界填充算法種子像素入棧;當(dāng)棧非空時(shí)作如下三步操作: (1)棧頂像素出棧; (2)填充出棧像素所在掃描行的連續(xù)像素段,直到遇到邊界像素為止,即每出棧一個(gè)像素,就對(duì)包含該像素的整個(gè)掃描線區(qū)間進(jìn)行填充; (3)在區(qū)間中檢查與當(dāng)前掃描線相鄰的上下兩條掃描線的有關(guān)像素是否全為邊界像素或已填充的像素,若存在非邊界、未填充邊界的像素,則把每一區(qū)間的最右像素取作種子像素入棧。(4)重復(fù)步驟1-3區(qū)域填充屬性v掃描線邊界填充算法區(qū)域填充屬性v泛濫填充算法 算法的輸入:種子點(diǎn)坐標(biāo)(x, y),填充色和內(nèi)部點(diǎn)的顏色。
13、 算法原理:算法從指定的種子(x,y)開始,用所希望的填充顏色賦給所有當(dāng)前為給定內(nèi)部顏色的像素點(diǎn)。區(qū)域填充屬性v4連通泛濫填充算法void floodFill4(int x, int y, int fillColor, int interiorColor)int Color; Color = getPixel(x, y);if(interiorColor = Color )setPixel(x, y);floodFill4 (x+1, y, fillColor, borderColor);floodFill4 (x-1, y, fillColor, borderColor);floodFill
14、4 (x, y+1, fillColor, borderColor);floodFill4 (x, y-1, fillColor, borderColor);。走樣與反走樣v走樣走樣在光柵圖形顯示器中,對(duì)于非水平且非垂直的直線或多邊形邊界進(jìn)行掃描轉(zhuǎn)換時(shí),會(huì)呈現(xiàn)鋸齒狀,如下圖所示,這種用離散量表示連續(xù)量引起的失真,就叫做走樣(Liasing)走樣與反走樣v 產(chǎn)生原因數(shù)學(xué)意義上的圖形是由無線多個(gè)連續(xù)的、面積為零的點(diǎn)構(gòu)成;但在光柵顯示器上,用有限多個(gè)離散的,具有一定面積的像素來近似地表示他們。v 反走樣為了提高圖形的顯示質(zhì)量,需要減少或消除走樣現(xiàn)象。用于減少或消除這種效果的技術(shù),稱為反走樣v 思想通
15、過修改沿圖元邊界的各像素的亮度來平滑邊界減少鋸齒現(xiàn)象走樣與反走樣v 反走樣技術(shù) 過取樣 區(qū)域取樣v 過取樣(后濾波)在較高分辨率下掃描轉(zhuǎn)換,并在較低分辨率下顯示其結(jié)果的技術(shù)。v 區(qū)域取樣(前濾波)通過計(jì)算待顯示每個(gè)像素被物體覆蓋區(qū)域的多少來確定像素亮度。走樣與反走樣v 簡(jiǎn)單過取樣思想 每個(gè)像素分為若干子像素。 統(tǒng)計(jì)沿直線路徑的子像素?cái)?shù)目。 每個(gè)像素的亮度等級(jí)正比于子像素?cái)?shù)目。走樣與反走樣v 重疊過取樣 為了得到更好的效果,在對(duì)一個(gè)像素點(diǎn)進(jìn)行著色處理時(shí),不僅僅只對(duì)其本身的子像素進(jìn)行采樣,同時(shí)對(duì)其周圍的多個(gè)像素的子像素進(jìn)行采樣,來計(jì)算該點(diǎn)的顏色屬性。v 如下圖所示,設(shè)顯示器分辨率為mn,其中m=4,n=3,首先把顯示窗口劃分為(2m+1)(2n+1)個(gè)子像素,然后通過掃描轉(zhuǎn)換求得各子像素的顏色值,再對(duì)位于像素中心及四周的9個(gè)子像素的顏色值進(jìn)行平均,最后得到顯示像素的顏色亮度值。走樣與反走樣v 區(qū)域邊界反走樣對(duì)于有寬度的直線段,過將每個(gè)像素亮度設(shè)置成與線條部分重疊的區(qū)域面積成正比走樣與反走樣v 區(qū)域邊界反走樣為了簡(jiǎn)化計(jì)算,可以利用一種求相交區(qū)域的近似面積的離散計(jì)算方法:v 問題1、像素的亮度與相交區(qū)域的面積成正比,而與相交區(qū)域落在像素內(nèi)的位置無關(guān),這仍然會(huì)導(dǎo)致鋸齒。2、直線上沿理想直線方向的相鄰兩個(gè)像素有時(shí)會(huì)有較
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳部合同管理制度
- 家具安裝部管理制度
- 家電售后部管理制度
- 待付款合同管理制度
- 德克士供應(yīng)管理制度
- 快消品內(nèi)控管理制度
- 快遞網(wǎng)點(diǎn)誰管理制度
- 總公司資質(zhì)管理制度
- 總經(jīng)辦經(jīng)費(fèi)管理制度
- 感知網(wǎng)安全管理制度
- 2025年上海奉賢區(qū)初三二模中考數(shù)學(xué)試卷試題(含答案詳解)
- 汽車維修工(汽車車身涂裝修復(fù)工)理論知識(shí)考核要素細(xì)目表
- 2025年企業(yè)安全生產(chǎn)知識(shí)競(jìng)賽全套復(fù)習(xí)題庫及答案(完整版)
- 新大學(xué)語文試題及答案
- 長(zhǎng)沙市望城區(qū)2024年八年級(jí)《數(shù)學(xué)》下學(xué)期期末試題與參考答案
- 人際關(guān)系與有效溝通培訓(xùn)課件
- 動(dòng)漫人物教學(xué)課件
- 深基坑土方開挖專項(xiàng)施工方案專家論證
- 2025年部編版語文六年級(jí)下冊(cè)期末復(fù)習(xí)計(jì)劃及全冊(cè)單元復(fù)習(xí)課教案
- 電大本科《人文英語4》期末題庫及答案
- 貼標(biāo)(不干膠標(biāo))檢驗(yàn)作業(yè)指導(dǎo)書(美國UEC驗(yàn)廠質(zhì)量管理體系)
評(píng)論
0/150
提交評(píng)論