計算機圖形學第四章_第1頁
計算機圖形學第四章_第2頁
計算機圖形學第四章_第3頁
計算機圖形學第四章_第4頁
計算機圖形學第四章_第5頁
已閱讀5頁,還剩84頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章多邊形多邊形:(定義)限定為有封閉折線邊界且無交叉邊的平面圖形多邊形分類:凸多邊形、凹多邊形2023年2月6日計算機圖形學40字符處理ASCII碼:“美國信息交換用標準代碼集”(AmericanStandardCodeforInformationInterchange),簡稱ASCI碼。國標碼:“中華人民共和國國家標準信息交換編碼,簡稱為國標碼,代號GB2312-80。字庫:字庫中儲存了每個字符的圖形信息。矢量字庫和點陣字庫2023年2月6日計算機圖形學41國標碼:6763個漢字,一級3755個,二級3008個,682個圖形符號,所有漢字和圖形符號組成94×94矩陣,每行為“區(qū)”,每列為“位”,區(qū)碼位碼各用一個字節(jié)表示。最高位為1表示國標碼。2023年2月6日計算機圖形學423.5.1字符的屬性字體、字形、字號、字間距、行間距等等。 一般字體確定風格,字形確定外觀,字號確定尺寸。2023年2月6日計算機圖形學43字符串的屬性文本高度、文本寬度(擴展/壓縮因子)、字符方向、文本路徑方向、對齊方式(左對齊,中心對齊,或右對齊,指定起始、終止點)、文本字體、字符的顏色屬性等。反繪(從右到左)、倒繪(旋轉180°)、寫方式(替換或與方式)等。2023年2月6日計算機圖形學44字符的表達和生成型式點陣式矢量式編碼式輪廓技術2023年2月6日計算機圖形學45點陣字符在點陣表示中,每個字符由一個點陣位圖來表示顯示時:形成字符的象素圖案常用的點陣大小有5×7、7×9、8×8、16×16等等

字符A的點陣表示111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(a)字符A的點陣位圖(a)字符A的象素圖案2023年2月6日計算機圖形學46矢量字符矢量字符采用直線和曲線段來描述字符形狀,矢量字符庫中記錄的是筆劃信息。顯示時:解釋字符的每個筆劃信息2023年2月6日計算機圖形學47如B字符,由定點a,b,c,d,e,f,g,h,I,j,k,l表示,調用矢量字符過程相當于輸出一個polyline,2023年2月6日計算機圖形學48方向編碼式方向編碼式字符用有限的若干種方向編碼來表達一個字符,常用的如8方向編碼2023年2月6日計算機圖形學49“B”表示為8方向編碼:{000012344400012344440666666}2023年2月6日計算機圖形學50輪廓技術當對輸出字符的要求較高時(如排版印刷),需要使用高質量的點陣字符。對于GB2312-80所規(guī)定的6763個基本漢字,假設每個漢字是72X72點陣,那么一個字庫就需要72X72X6763/8=4.4兆字節(jié)存儲空間在實際使用時,還需要多種字體(如基本體、宋體、仿宋體、黑體、楷體等),每種字體又需要多種字號。2023年2月6日計算機圖形學51解決這個問題一般采用壓縮技術。對字型數(shù)據(jù)壓縮后再存儲,使用時,將壓縮的數(shù)據(jù)還原為字符位圖點陣2023年2月6日計算機圖形學52壓縮方法有多種:最簡單的有黑白段壓縮法,這種方法簡單,還原快,不失真,但壓縮較差,使用起來也不方便,一般用于低級的文字處理系統(tǒng)中。另一種方法是部件壓縮法。這種方法壓縮比大,缺點是字型質量不能保證。三是輪廓字型法,這種方法壓縮比大,且能保證字符質量,是當今國際上最流行的一種方法,基本上也被認為是符合工業(yè)標準化的方法。2023年2月6日計算機圖形學53輪廓字型法采用直線、或者二/三次Bezier曲線的集合來描述一個字符的輪廓線。輪廓線構成一個或若干個封閉的平面區(qū)域。采用適當?shù)膮^(qū)域填充算法,可以從字符的輪廓線定義產生的字符位圖點陣,區(qū)域填充算法可以用硬件實現(xiàn),也可以用軟件實現(xiàn)。2023年2月6日計算機圖形學54由美國Apple和Microsoft公司聯(lián)合開發(fā)的TrueType字型技術就是一種輪廓字型技術,已被用于為Windows中文版生成漢字字庫。當前占領主要的電子印刷市場的我國北大方正和華光電子印刷系統(tǒng),用的字型技術是漢字字型輪廓矢量法。2023年2月6日計算機圖形學55屬性處理(線形線寬處理)線型和線寬1.線型處理實心段和中間空白段的長度(象素數(shù)目)可用象素模板(pixelmask)指定。存在問題:如何保持任何方向的劃線長度近似地相等2023年2月6日計算機圖形學56解決可根據(jù)線的斜率來調整實心段和中間空白段的象素數(shù)目。2023年2月6日計算機圖形學57直線線寬處理方法刷子法:線刷子;方形刷子區(qū)域填充法2023年2月6日計算機圖形學58線刷子和方刷子處理線寬線刷子:垂直刷子、水平刷子

線刷子(a)(b)2023年2月6日計算機圖形學59特點實現(xiàn)簡單、效率高。斜線與水平(或垂直)線不一樣粗。當線寬為偶數(shù)個象素時,線的中心將偏移半個象素。利用線刷子生成線的始末端總是水平或垂直的,看起來不太自然。解決:添加“線帽(linecap)”2023年2月6日計算機圖形學60

線“帽子”(a)方帽(c)圓帽(b)突方帽2023年2月6日計算機圖形學61當比較接近水平的線與比較接近垂直的線匯合時,匯合處外角將有缺口

線刷子產生的缺口2023年2月6日計算機圖形學62解決:斜角連接(miterjoin)、圓連接(roundjoin)、斜切連接(beveljoin)

線刷子產生的缺口(a)斜角連接(b)圓連接(c)斜切連接2023年2月6日計算機圖形學63方刷子特點:方刷子繪制的線條(斜線)比用線刷子所繪制的線條要粗一些方刷子繪制的斜線與水平(或垂直)線不一樣粗方刷子繪制的線條自然地帶有一個“方線帽”

方刷子2023年2月6日計算機圖形學64其它線寬處理方式區(qū)域填充改變刷子形狀:111101111111000(a)象素模板(b)用該模板進行線寬處理

利用象素模板進行線寬處理2023年2月6日計算機圖形學65曲線的線型和線寬線型:可采用象素模板的方法

利用模板110進行圓的線型處理2023年2月6日計算機圖形學66線寬線刷子方刷子 要顯示一致的曲線寬度可通過旋轉刷子方向以使其在沿曲線移動時與斜率方向一致,圓弧刷子采用填充的辦法。2023年2月6日計算機圖形學67區(qū)域填充屬性區(qū)域填充屬性選擇包括顏色、圖案和透明度。001010111(a)圖案模板位圖(b)用該模板進行填充

利用圖案模板進行三角形的填充模板圖案2023年2月6日計算機圖形學68根據(jù)圖案和透明度屬性來填充平面區(qū)域的基本思想首先用模板定義各種圖案。然后,修改填充的掃描轉換算法:在確定了區(qū)域內一象素之后,不是馬上往該象素填色而是先查詢模板位圖的對應位置。若是以透明方式填充圖案,則當模板位圖的對應位置為1時,用前景色寫象素,否則,不改變該象素的值。若是以不透明方式填充圖案,則視模板位圖對應位置為1或0來決定是用前景色還是背景色去寫象素。2023年2月6日計算機圖形學69確定區(qū)域與模板之間的位置關系(對齊方式)一種對齊方式是把有模板原點與填充區(qū)域邊界或內部的某點對齊一種對齊方式是把模板原點與填充區(qū)域外部的某點對齊70走樣現(xiàn)象走樣(aliasing)用離散量(像素)表示連續(xù)的量(圖形)而引起的失真,稱為走樣,或稱為混淆光柵圖形的走樣現(xiàn)象階梯(鋸齒)狀邊界圖形細節(jié)失真狹小圖形遺失:動畫序列中時隱時現(xiàn),產生閃爍71(1)階梯狀的圖形邊界像素間距大線畫圖元填充圖元邊界實例72(2)圖形細節(jié)失真顯示圖形的最小單位為像素細長的矩形顯示后成了加寬的矩形更細的矩形將丟失73(3)狹小圖形的遺失與動態(tài)圖形的閃爍多邊形分布在像素間,不覆蓋像素中心,不被顯示狹小圖形運動時,會間隔覆蓋像素的中心,產生閃爍74反走樣方法反走樣(antialiasing)在圖形顯示過程中,用于減少或消除走樣(混淆)現(xiàn)象的方法方法提高分辨率方法非加權區(qū)域采樣加權區(qū)域采樣75(1)提高分辨率的反走樣方法方法簡單,但代價非常大顯示器的水平、豎直分辯率各提高一倍,則顯示器的點距減少一倍,幀緩存容量則增加到原來的4倍,而掃描轉換同樣大小的圖元卻要花4倍時間76(2)非加權區(qū)域采樣方法掃描轉換線段的兩點假設像素是數(shù)學上抽象的點,它的面積為0,它的亮度由覆蓋該點的圖形的亮度所決定直線段是數(shù)學上抽象直線段,它的寬度為0現(xiàn)實像素的面積不為0;直線段的寬度至少為1個像素;假設與現(xiàn)實的矛盾是導致走樣出現(xiàn)的原因之一77解決方法:改變直線段模型,線上像素灰度不等方法步驟 1、將直線段看作具有一定寬度的狹長矩形; 2、當直線段與某像素有交時,求出兩者相交區(qū)域的面積; 3、根據(jù)相交區(qū)域的面積,確定該像素的亮度值78方法性質直線段對一個像素亮度的貢獻與兩者相交區(qū)域的面積成正比當直線段和某個像素不相交時,它對該像素的亮度無影響相同面積的相交區(qū)域對像素的亮度貢獻相同,而與這個相交區(qū)域落在像素內的位置無關關鍵:如何計算相交面積?79計算相交區(qū)域的面積(a)面積=D2/2k(b)面積=D–k/2像素實際顯示的灰度值=所得面積*該像素的最大灰度值D/kDDk假設線段斜率為k像素實際大小80求相交區(qū)域的近似面積的離散計算方法將屏幕像素分割成n個更小的子像素;計算中心點落在直線段內的子像素的個數(shù),記為m,m/n為線段與像素相交區(qū)域面積的近似值例目的:簡化計算

n=16,m=3近似面積

=3/1681存在的不足像素的顏色或灰度值與相交(覆蓋)區(qū)域的面積成正比,而與相交區(qū)域落在像素內的位置無關,仍會導致鋸齒效應沿理想直線方向的相鄰兩個像素的顏色或灰度值會有較大差異82(3)加權區(qū)域采樣方法權函數(shù)w(x,y)以像素A的中心為原點建立二維坐標系w(x,y)反應了微面積元dA對整個像素亮度的貢獻大小,與dA到像素中心距離d成反比。高斯函數(shù)83權性位于(x,y)處的微面積元dA對像素的亮度的貢獻為

w(x,y)dA相交區(qū)域對該像素的亮度貢獻84實現(xiàn)步驟1.求直線段與像素的相交區(qū)域2.計算的值3.上面所得到的值介于0、1之間,用它乘像素的最大灰度值,即設該像素的顯示灰度。問題:計算量大

特例:時,加權區(qū)域采樣方法退化為非加權區(qū)域采樣方法85離散計算方法1.將屏幕像素均勻分割成m個子像素,則每個子像素的面積為計算每個子像素對原像素亮度的貢獻,記為

將保存在一張加權表中2.求出所有中心落于直線段內的子像素,記為3.計算所有這些子像素對原像素亮度貢獻之和。該值乘以像素的最大灰度值即為像素的顯示灰度值86w(x,y)是一個經驗函數(shù),對應的也是經驗值w(x,y)可以用加權表M表示,取法有M=3×3M=5×587例加權表1個像素分解成3×3個子像素加權區(qū)域采樣:非加權區(qū)域采樣:s=3/988OpenGL函數(shù)函數(shù)啟動反走樣:glEnable(),參數(shù)為GL_POINT、GL_LINE_SMOOTH或GL_POLYGON_SMOOTH質量控制:glHint(GLenumtarget,GLenumhint),參數(shù)target為:GL_POINT_SMOOTH_HINT、GL_LINE_SMOOTH_HINT、GL_POLYGON_SMOOTH_HINT等參數(shù)hint為GL_FASTEST、GL_NICEST、GL_

溫馨提示

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

評論

0/150

提交評論