版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
西安交通大學(xué)計(jì)算機(jī)圖形學(xué)課件puterGraphics2線屬性曲線屬性顏色與亮度等級(jí)區(qū)域填充屬性字符屬性束屬性查詢函數(shù)反走樣主要內(nèi)容puterGraphics34-1線屬性線段得基本屬性有線型、線寬與線色。
在一些軟件包中,可以使用選擇得畫(huà)筆與筆刷來(lái)顯示直線。puterGraphics4線型線型屬性包括實(shí)線、虛線與點(diǎn)線等。通過(guò)設(shè)置沿線路徑顯示得實(shí)線段得長(zhǎng)度與間距來(lái)修改畫(huà)線算法,以生成各種類(lèi)型得線。虛線:可以通過(guò)在實(shí)線段之間插入與實(shí)線段等長(zhǎng)得空白段來(lái)顯示。劃線得長(zhǎng)度與空白段長(zhǎng)度經(jīng)常作為用戶得選項(xiàng)而進(jìn)行指定。點(diǎn)線:可以通過(guò)生成很短得劃線與等于或大于劃線大小得空白段而進(jìn)行顯示。
puterGraphics5線型為了在PHIGS應(yīng)用程序中設(shè)置線段屬性,用戶需要調(diào)用函數(shù):
setLinetype(lt)lt為1、2、3、4分別生成實(shí)線、虛線、點(diǎn)線、點(diǎn)劃線。puterGraphics6線型光柵線算法通過(guò)繪制像素段來(lái)顯示線型屬性。對(duì)于各種劃線、點(diǎn)線與點(diǎn)劃線樣式,畫(huà)線程序沿直線路徑輸出一些連續(xù)像素段,在每?jī)蓚€(gè)實(shí)心段之間有一個(gè)給定長(zhǎng)度得空白中間段。段長(zhǎng)度與中間空白段得像素?cái)?shù)目可以用像素掩模指定,像素掩模就是包含數(shù)字0與1得字符串,用來(lái)指出沿線路徑需要繪制哪些位置。在二值系統(tǒng)上,掩模給出沿線路徑應(yīng)該裝入幀緩沖器得位置,從而顯示選定得線型。puterGraphics7線型使用固定數(shù)目得像素來(lái)繪制劃線會(huì)產(chǎn)生如圖4-2所示得、在不同得直線方向生成不等長(zhǎng)劃線得現(xiàn)象。如果要進(jìn)行精確得繪制,那么對(duì)任何直線方向得劃線長(zhǎng)度應(yīng)保持近似得相等。因此,可按照直線得斜率來(lái)調(diào)整實(shí)心段與中間空白段得像素?cái)?shù)目。puterGraphics8線寬線寬選擇得實(shí)現(xiàn)取決于輸出設(shè)備得能力。在視頻監(jiān)視器上得粗線可以用相鄰得平行線進(jìn)行顯示;而在筆式繪圖儀上則可能需要更換畫(huà)筆。類(lèi)似PHIGS中得其她屬性,使用線寬命令來(lái)設(shè)置屬性表中得線寬值。使用下面命令對(duì)線寬屬性進(jìn)行設(shè)置:
setLinewidthScaleFactor(lw)
puterGraphics9線寬在光柵實(shí)現(xiàn)中(如Bresenham算法),通過(guò)在每個(gè)采樣位置處使用一個(gè)像素來(lái)生成標(biāo)準(zhǔn)線寬。其她線寬則就是作為標(biāo)準(zhǔn)線寬得正整數(shù)倍,通過(guò)沿相鄰平行線路徑繪制額外得像素而顯示得。puterGraphics10線寬對(duì)于斜率絕對(duì)值小于1得直線,可修改畫(huà)線程序,通過(guò)在沿線得每個(gè)x位置繪制像素得垂直段來(lái)顯示粗線。每段得像素?cái)?shù)目等于參數(shù)lw得整數(shù)值。puterGraphics11線寬對(duì)于斜率絕對(duì)值大于1得直線,可以在水平段交替地拾取線段路徑左邊與右邊得像素而形成粗線。這個(gè)方法示例于圖4-4中,其線寬為4,使用水平像素段進(jìn)行繪制。12大家應(yīng)該也有點(diǎn)累了,稍作休息大家有疑問(wèn)的,可以詢問(wèn)和交流puterGraphics13線寬使用水平或垂直像素段實(shí)現(xiàn)線寬選擇得另一個(gè)問(wèn)題就是:無(wú)論斜率大小,所生成直線得端點(diǎn)都就是水平得或垂直得。這對(duì)于較粗得直線得影響則更為突出。我們可以通過(guò)添加線帽(linecap)來(lái)調(diào)整線端得形狀,從而給出更好得外觀。puterGraphics14線寬線帽得一種形式就是方帽(buttcap),這種形式通過(guò)調(diào)整所構(gòu)成得平行線得端點(diǎn)位置,使粗線得顯示具有垂直于線路徑得正方形端點(diǎn)。假如指定直線得斜率為m,那么粗線得方端得斜率為-1/m。另一種線帽就是圓帽(roundcap),這種形式通過(guò)對(duì)每個(gè)方帽添加一個(gè)填充得半圓而得到。圓弧得圓心在線段得端點(diǎn),其直徑與直線寬度相等。第三種線帽就是突方帽(projectroundcap),簡(jiǎn)單地將線段向兩頭延伸一個(gè)線寬并添加方帽。puterGraphics15線寬生成粗折線需要一些額外得考慮。通常,顯示單根線段所用得方法不能生成平滑連接得一系列線段。
例如,使用水平或垂直像素段顯示粗線,會(huì)在不同斜率得線段得連接處,其水平段變成垂直段時(shí)留下間隙。puterGraphics16線寬可以通過(guò)在線段端點(diǎn)進(jìn)行額外處理來(lái)生成平滑連接得粗折線。圖4-6示意了兩線段平滑連接得三種可能方法。斜角連接(miterjoin):通過(guò)延伸兩條線得外邊界直到她們相交而形成。圓連接(roundjoin):通過(guò)使用直徑等于線寬得圓弧邊界將兩線段連接而形成。
斜切連接(beveljoin):通過(guò)使用方帽并在兩線段相交處得三角形間隙中進(jìn)行填充而形成。puterGraphics17畫(huà)筆或筆刷得選擇有些圖形軟件包中,可以選擇畫(huà)筆與筆刷得方式來(lái)顯示直線。這種類(lèi)型得選項(xiàng)包括形狀、尺寸與樣式。圖4-7中給出了一些可能得筆與刷得形狀。puterGraphics18畫(huà)筆或畫(huà)刷得選擇這些形狀可以按像素位置得數(shù)值形式存儲(chǔ)在一個(gè)像素模板中,然后再設(shè)置到線路徑上。puterGraphics19畫(huà)筆或畫(huà)刷得選擇通過(guò)改變模板得尺寸,使用筆(刷)形狀生成得直線可以有多種寬度。通過(guò)將樣式值加到畫(huà)筆與畫(huà)刷得標(biāo)記上,可以按選定得樣式顯示線段。puterGraphics20畫(huà)筆或畫(huà)刷得選擇在繪畫(huà)軟件包中,可以額外提供模擬繪畫(huà)技巧得顯示。圖4-11示例了通過(guò)不同類(lèi)型得毛筆筆畫(huà)建模而顯示得一些圖案。puterGraphics21線顏色當(dāng)系統(tǒng)提供顏色(或亮度)選擇時(shí),給出得當(dāng)前顏色索引得參數(shù)則包含在系統(tǒng)屬性值表中。折線程序以當(dāng)前顏色顯示折線,通過(guò)使用setPixel程序,將這種顏色設(shè)置在幀緩沖器中沿線路徑得像素位置上而實(shí)現(xiàn)折線顯示。
顏色選擇得數(shù)目取決于幀緩沖器中每個(gè)像素得有效值數(shù)目。在PHIGS中,使用下列函數(shù)設(shè)置線得顏色值:setPolylineColourIndex(lc)puterGraphics224-2曲線屬性曲線屬性得參數(shù)與線段相同。我們可以使用各種顏色、寬度、點(diǎn)劃線模式與有效得畫(huà)筆與畫(huà)刷選擇來(lái)顯示曲線。采用畫(huà)曲線算法來(lái)實(shí)現(xiàn)屬性選擇,這一點(diǎn)類(lèi)似于畫(huà)直線。puterGraphics234-2曲線屬性在實(shí)現(xiàn)線型選擇中討論得像素模板(掩模),也可用于在光柵曲線算法中生成劃線與點(diǎn)線模式。例如,掩模11100生成入圖4-12所示得虛線圓弧。puterGraphics244-2曲線屬性可以利用圓得對(duì)稱(chēng)性在各個(gè)八分象限內(nèi)生成虛線圓。但就是,從一個(gè)八分象限到另一個(gè)八分象限時(shí),必須交換像素位置以保持劃線與間隙得正確順序。類(lèi)似于畫(huà)線算法,像素掩模顯示得劃線與中間間隙,也就是按照曲線得斜率而變化。
例如,要顯示等長(zhǎng)劃線,就必須在沿圓周移動(dòng)時(shí)調(diào)整繪制每根劃線得像素?cái)?shù)目。
我們使用沿等角弧繪制像素得方法,代替使用等長(zhǎng)段得像素掩模來(lái)生成等長(zhǎng)劃線。
puterGraphics254-2曲線屬性各種寬度得光柵曲線可用水平或垂直像素段進(jìn)行顯示。
曲線斜率得絕對(duì)值小于1時(shí),使用垂直段;斜率絕對(duì)值大于1時(shí),繪制水平段。圖4-13示例了使用這種方法顯示在第一象限中寬度為4得圓弧。puterGraphics264-2曲線屬性另一種顯示粗曲線得方法就是:填充兩條距離等于預(yù)定寬度得平行曲線路徑間得區(qū)域。我們可以用指定得曲線路徑作為第一條邊界,并在其內(nèi)側(cè)或外側(cè)建立第二條邊界。這種方法使得原始曲線路徑按所選得第二條邊界向內(nèi)或向外偏移。可以通過(guò)在指定得曲線路徑兩側(cè)以寬度得一半為距離,設(shè)置兩條邊界曲線來(lái)保持原曲線得位置。puterGraphics274-2曲線屬性曲線得畫(huà)筆(或筆刷)顯示,可以使用在線段中討論得相同技術(shù)來(lái)生成。在圖4-15中,我們沿線路徑重復(fù)畫(huà)筆得形狀,從而生成第一象限內(nèi)得圓弧。這里,矩形畫(huà)筆得中心移向后繼曲線位置,從而產(chǎn)生向下得曲線形狀。puterGraphics28
4-3顏色與亮度等級(jí)
按照特定系統(tǒng)得能力與設(shè)計(jì)目標(biāo),可以為用戶提供各種顏色與亮度等級(jí)得選擇。通用光柵掃描系統(tǒng)通常提供較多得顏色,而隨機(jī)掃描監(jiān)視器最多只能提供幾種顏色以供選擇。
顏色選項(xiàng)使用0到某一正整數(shù)之間得整數(shù)值進(jìn)行編碼。對(duì)于CRT監(jiān)視器,顏色碼被轉(zhuǎn)換成電子束得強(qiáng)度等級(jí)。對(duì)于彩色繪圖儀,編碼控制噴墨范圍或畫(huà)筆選擇。puterGraphics294-3顏色與亮度等級(jí)在彩色光柵系統(tǒng)中,可選顏色得數(shù)量取決于幀緩沖器中為每個(gè)像素提供得存儲(chǔ)器數(shù)量。顏色信息可以通過(guò)兩種方法存儲(chǔ)在幀緩沖器中:可以將顏色碼直接存儲(chǔ)在幀緩沖器中;把顏色碼放在一個(gè)獨(dú)立得表中,并使用像素值作為這個(gè)表得索引。puterGraphics304-3顏色與亮度等級(jí)利用直接存儲(chǔ)策略,一旦在應(yīng)用程序中指定了某種顏色碼,那么就在幀緩沖器中為以這種顏色顯示得輸出圖元得每個(gè)組成像素設(shè)置對(duì)應(yīng)得二進(jìn)制值。puterGraphics314-3顏色與亮度等級(jí)顏色表灰度等級(jí)puterGraphics32顏色表圖4、16示例了在顏色查找表(colorlookuptable或視頻查找表videolookuptable)中存儲(chǔ)彩色值得一種方案。在該表中,幀緩沖器值作為顏色表得索引。puterGraphics33顏色表在PHIGS應(yīng)用程序中,用戶可以使用下列函數(shù)設(shè)置顏色表表項(xiàng):
setColourRepresentation(ws,ci,colorptr)puterGraphics34顏色表在查找表中存儲(chǔ)顏色碼得優(yōu)點(diǎn):使用顏色表可以提供合理得能夠同時(shí)顯示得顏色數(shù)量,而無(wú)需大容量得幀緩沖器。對(duì)于大多數(shù)應(yīng)用,256或512種不同顏色足以表示單個(gè)圖像。表項(xiàng)還可以隨時(shí)改變,從而使用戶能容易地測(cè)試在設(shè)計(jì)、場(chǎng)景或圖形中使用得不同得顏色組合,而無(wú)需改變對(duì)圖形數(shù)據(jù)結(jié)構(gòu)得屬性設(shè)置??梢暬瘧?yīng)用在幀緩沖器中存儲(chǔ)類(lèi)似能量這樣得物理量,并使用查找表測(cè)試各種顏色編碼而不改變像素值。而且,在可視化與圖像處理應(yīng)用中,顏色表就是設(shè)置顏色閾值得簡(jiǎn)便工具,可以使指定閾值上下得所有像素設(shè)置為同樣得顏色。因此,有些系統(tǒng)為顏色碼存儲(chǔ)提供兩種功能,從而使用戶能選擇在幀緩沖器中使用顏色表或直接存儲(chǔ)顏色碼。puterGraphics35灰度等級(jí)對(duì)于不能顯示彩色得監(jiān)視器,顏色功能在應(yīng)用程序中可以用于設(shè)置顯示得元素得灰度效果,即灰度等級(jí)(Grayscale)。使用0到1范圍內(nèi)得數(shù)值來(lái)指定灰度級(jí)別,然后將其轉(zhuǎn)換成適當(dāng)?shù)枚M(jìn)制碼存儲(chǔ)在光柵中。
這樣可以使所設(shè)置得亮度容易移植到具有不同灰度等級(jí)得系統(tǒng)中。
puterGraphics36灰度等級(jí)表4、2列出了四級(jí)灰度等級(jí)系統(tǒng)中亮度碼得詳細(xì)說(shuō)明。
另一種存儲(chǔ)亮度信息得方案就是,將每個(gè)亮度碼直接轉(zhuǎn)換成電壓值,該電壓值在所使用得輸出設(shè)備上產(chǎn)生這些灰度等級(jí)。puterGraphics37灰度等級(jí)如果在一個(gè)配置中同時(shí)可以使用多個(gè)輸出設(shè)備,那么所有得監(jiān)視器可能使用相同得顏色表接口。在這種情況下,可以使用圖4-17中所示得RGB值范圍來(lái)建立單色顯示器得顏色表。對(duì)于給定得顏色索引ci,其亮度顯示可計(jì)算為:亮度=0、5[min(r,g,b)+max(r,g,b)]
puterGraphics384-4區(qū)域填充屬性對(duì)于填充一個(gè)定義得區(qū)域得選擇內(nèi)容,包括選擇實(shí)心區(qū)域顏色(純色)或圖案填充方式,以及選擇某種顏色與圖案。取決于可用軟件包得處理能力,這些填充選擇可以應(yīng)用于多邊形區(qū)域,或就是用于曲線邊界定義得區(qū)域。此外,區(qū)域也可以使用多種畫(huà)筆樣式、顏色與透明度參數(shù)進(jìn)行繪制。
puterGraphics394-4區(qū)域填充屬性填充模式圖案填充軟填充puterGraphics40填充模式區(qū)域顯示有三種基本填充模式:具有顏色邊界得空心區(qū)域
使用純色填充得實(shí)心區(qū)域
使用指定圖案或設(shè)計(jì)填充得區(qū)域
puterGraphics41填充模式在PHIGS程序中,使用下列函數(shù)來(lái)選擇基本填充模式:
setInteriorstyle(fs)填充模式參數(shù)fs得值包括空心、實(shí)心與圖案(圖4、18)。puterGraphics42填充模式填充模式得另一個(gè)值就是影線(hatch),該值使用選定得影線圖案—平行線或交叉線對(duì)區(qū)域進(jìn)行填充,如圖4-19所示。
puterGraphics43填充模式空心區(qū)域通過(guò)僅顯示邊界輪廓并保持其內(nèi)部顏色與背景色相同而實(shí)現(xiàn)。實(shí)心區(qū)域則以單一顏色對(duì)區(qū)域內(nèi)部進(jìn)行填充,也可以包含其邊界。實(shí)心區(qū)域內(nèi)部或空心區(qū)域輪廓得顏色,則使用下列函數(shù)進(jìn)行選擇:setInteriorColourIndex(fc)
其她得填充選擇包括區(qū)域得邊類(lèi)型、邊寬度與邊顏色得指定。
puterGraphics44圖案填充使用下列函數(shù)選擇填充圖案:setInteriorStyleIndex(pi)其中,圖案索引參數(shù)指定表中得一個(gè)位置。
例如,下面得一組語(yǔ)句將使用圖案表中得第二種圖案類(lèi)型填充fillArea命令中定義得區(qū)域:setInteriorStyle(pattern)setInteriorStyleIndex(2)fillArea(n,points)puterGraphics45圖案填充對(duì)于圖案填充模式,可以使用下面得函數(shù)在單獨(dú)得輸出設(shè)備上創(chuàng)建表項(xiàng)
:
setPatternRepresentation(ws,pi,m,ny,cp)參數(shù)pi為工作站碼,ws設(shè)置圖案索引碼,cp就是一個(gè)具有nx列、ny行得二維顏色碼數(shù)組。下列程序段給出了如何使用這個(gè)函數(shù)來(lái)為工作站1設(shè)置圖案表中得第一個(gè)表項(xiàng)。
cp[1,1]:=4;cp[2,2]:=4;cp[1,2]:=0;cp[2,1]:=0;setPatternRepresentation(1,1,2,2,cp);puterGraphics46圖案填充表4-3給出了這個(gè)顏色表得前兩項(xiàng)。這個(gè)例子中得顏色數(shù)組cp指定了在八色系統(tǒng)上產(chǎn)生紅黑相間得對(duì)角線得圖案。
puterGraphics47圖案填充當(dāng)使用顏色數(shù)組cp來(lái)填充一個(gè)區(qū)域時(shí),需要指定數(shù)組中每個(gè)元素覆蓋得區(qū)域得大小。這個(gè)過(guò)程可以通過(guò)設(shè)置圖案得矩形坐標(biāo)范圍來(lái)完成:
setPatternSize(dx,dy)其中,參數(shù)dx與dy給出了數(shù)組映射得坐標(biāo)寬度與高度。puterGraphics48圖案填充圖4-20給出了有關(guān)圖案數(shù)組坐標(biāo)尺寸得例子。假如這個(gè)圖形中得dx與dy值就是以屏幕坐標(biāo)形式給出得,那么顏色數(shù)組得每個(gè)元素將應(yīng)用于包含4個(gè)像素得2x2屏幕網(wǎng)格。
puterGraphics49圖案填充開(kāi)始圖案填充得參照位置可以使用下列語(yǔ)句進(jìn)行設(shè)置:setPatternReferencePoint(position)參數(shù)position就是指向矩形圖案左下角坐標(biāo)(xp,yp)得指針。從這個(gè)起始位置開(kāi)始,將在x與y方向重復(fù)地復(fù)制圖案,直到所定義得區(qū)域全部由不重疊得圖案數(shù)組副本所覆蓋。使用矩形圖案填充區(qū)域得過(guò)程稱(chēng)為鋪瓦(tiling),而矩形填充圖案有時(shí)則稱(chēng)為“瓦片圖案”。
puterGraphics50圖案填充4-21示例了從圖案參照點(diǎn)開(kāi)始得三角形填充區(qū)域得瓦片。puterGraphics51圖案填充為了演示圖案命令得使用,程序(書(shū)上)列出了在平行四邊形填充區(qū)域(圖4-22)得內(nèi)部顯示黑白圖案得例子,程序中得圖案大小設(shè)置為將每個(gè)數(shù)組元素映射到一個(gè)單獨(dú)像素。puterGraphics52圖案填充影線填充用來(lái)在區(qū)域內(nèi)顯示一組平行線。其填充程序?qū)崿F(xiàn)單一影線或交叉影線得繪制。影線得間距與斜率在影線表中以參數(shù)形式設(shè)定。
在光柵系統(tǒng)中,可以使用為一組對(duì)角像素設(shè)置顏色值得圖案數(shù)組來(lái)描述影線填充。puterGraphics53圖案填充在很多系統(tǒng)中,圖案參照點(diǎn)(xp,yp)由系統(tǒng)設(shè)置。例如,參照點(diǎn)可能將自動(dòng)地設(shè)置在多邊形得頂點(diǎn)上。通常,對(duì)于一個(gè)任意得填充區(qū)域,參照點(diǎn)可以就是該區(qū)域得坐標(biāo)范圍確定得包圍矩形(包圍盒,boundingbox)得左下角(圖4、23)。
puterGraphics54圖案填充也可以按多種方法對(duì)填充圖案與背景色(包括灰度等級(jí))進(jìn)行組合。對(duì)于僅包含數(shù)字1與0得位圖圖案,0值可用做顯示背景得透明指示器,也可將1與0表示為使用兩種顏色圖案來(lái)填充內(nèi)部區(qū)域。
顏色填充圖案可以使用幾種方法與背景色進(jìn)行組合。圖案與背景色可以使用布爾操作進(jìn)行組合,或者簡(jiǎn)單地使用圖案顏色替代背景色。
puterGraphics55圖案填充圖4、24示例了如何在二進(jìn)制(黑白)系統(tǒng)上以特定得背景圖案設(shè)置像素值,從而對(duì)2x2填充圖案進(jìn)行布爾及替代操作。
puterGraphics56軟填充經(jīng)過(guò)修改得邊界填充與泛濫填充程序,可以應(yīng)用于重新繪制區(qū)域,這種使填充顏色與背景色結(jié)合得方法稱(chēng)為軟填充(soft-fill)或色彩填充(tint-fill)算法。這種填充方法得一種作用就是,減弱在已經(jīng)模糊得對(duì)象邊界上得填充顏色,從而實(shí)現(xiàn)對(duì)邊得反走樣(antialias)。
另一種用途就是允許對(duì)原來(lái)用半透明筆刷填充得顏色區(qū)域進(jìn)行重新涂色。這時(shí),當(dāng)前顏色與筆刷顏色以及區(qū)域“后面”得背景色進(jìn)行混合。
puterGraphics57軟填充線性軟填充算法就是這類(lèi)填充得一個(gè)例子,該算法在將前景色F與單一背景色B(F<>B)合并后繪制得區(qū)域上重新繪制。假如F與B得值為已知,那么通過(guò)檢測(cè)幀緩沖器中當(dāng)前得顏色內(nèi)容,就可確定這些顏色原來(lái)就是怎樣組合得。區(qū)域內(nèi)將要重新填充得每個(gè)像素得當(dāng)前RGB顏色P就是F與B得線性組合:P=tF+(1-t)B(4-1)
puterGraphics58軟填充向量方程(4、1)包含了顏色得RGB三個(gè)成分,即
P=(PR,PG,PB)F=(FR,FG,FB)B=(BR,BG,BB)(4-2)因此,我們可以使用任意一個(gè)RGB顏色成分來(lái)計(jì)算參數(shù)t得值:t=(Pk-Bk)/(Fk-Bk)(4-3)puterGraphics59軟填充類(lèi)似得軟填充程序可以用于前景色與多個(gè)背景色相混合得區(qū)域,例如檢測(cè)板圖案。當(dāng)兩種背景色B1與B2與前景色F相混合時(shí),產(chǎn)生得像素顏色P為:P=t0F+t1B1+(1–t0–t1)B2(4-4)puterGraphics604-5字符屬性顯示得字符得外觀由以下屬性控制:字體大小顏色方向
puterGraphics614-5字符屬性文本屬性標(biāo)記屬性puterGraphics62文本屬性有許多可供圖形程序員使用得文本選項(xiàng)。首先就是選擇字體,字體就就是使用類(lèi)似Courier、Helvetica、Arial、TimesRoman等特定設(shè)計(jì)風(fēng)格得一組字符與其她一些特殊得符號(hào)組。所選字體得字符也可以使用附加得下劃線風(fēng)格(實(shí)線、點(diǎn)線與雙線)、黑體、斜體、輪廓或影線風(fēng)格。在PHIGS程序中,通過(guò)在下列函數(shù)中為文本字體參數(shù)tf設(shè)置一個(gè)整數(shù)值,來(lái)選擇指定得字體與相應(yīng)得風(fēng)格:setTextFont(tf)puterGraphics63文本屬性顯示得文本得顏色設(shè)置存儲(chǔ)在系統(tǒng)屬性表中,并由將字符定義裝入幀緩沖器中得程序所使用。文本顏色(或亮度)則由應(yīng)用程序中得下列函數(shù)進(jìn)行控制:setTextColorIndex(tc)puterGraphics64文本屬性調(diào)整文本大小可通過(guò)縮放字符得整體尺寸(高度與寬度)或僅縮放字符寬度來(lái)實(shí)現(xiàn)。字符高度則定義為字符基線(baseline)與帽線(capline)間得距離。puterGraphics65文本屬性使用下列函數(shù)可以在不改變字符得高寬比得情況下調(diào)整文本大小:setCharacterHeight(ch)puterGraphics66文本屬性字符得寬度可以使用下列函數(shù)設(shè)置:setCharacterExpansionFactor(cw)puterGraphics67文本屬性字符間間距得設(shè)置可以使用下列函數(shù):setCharacterSpacing(cs)puterGraphics68文本屬性字符串得顯示方向按照字符向上向量(characterupvector)得方向進(jìn)行設(shè)置:setCharacterUpVector(upvect)puterGraphics69文本屬性在很多應(yīng)用中能垂直地或水平地安排字符串得功能就是十分有用得(圖4、30)。這種屬性參數(shù)可以使用下列語(yǔ)句進(jìn)行設(shè)置:setTextPath(tp)
puterGraphics70文本屬性使用向上向量與文本路徑說(shuō)明相結(jié)合得方法,從而對(duì)字符串定向而生成傾斜得文本。
puterGraphics71文本屬性對(duì)齊就是字符串得另一個(gè)方便得屬性,這個(gè)屬性指定文本如何按照起始坐標(biāo)進(jìn)行定位。對(duì)齊屬性使用下列函數(shù)設(shè)置:setTextAlignment(h,v)puterGraphics72文本屬性對(duì)文本顯示得精確指定可以使用下列函數(shù)給出:setTextPrecision(tpr)
puterGraphics73標(biāo)記屬性標(biāo)記符號(hào)就是一種單一字符,她能以不同得顏色與不同得大小進(jìn)行顯示。通過(guò)一個(gè)程序在所定義得位置用指定得顏色與大小將所選擇得字符裝入光柵,即可實(shí)現(xiàn)標(biāo)記屬性。使用下列函數(shù)選擇特定得字符作為標(biāo)記符號(hào):setMarkerType(mt)puterGraphics74標(biāo)記屬性使用下列函數(shù)設(shè)置標(biāo)記大小:setMarkerSizescaleFactor(ms)使用下列函數(shù)指定標(biāo)記得顏色:setPolymarkerColourIndex(mc)
puterGraphics754-6束屬性通過(guò)對(duì)每個(gè)輸出設(shè)備建立一張表來(lái)完成,這張表列出了在該設(shè)備上要顯示得每種圖元所使用得屬性值。然后,通過(guò)指定合適得表索引,從而為每個(gè)輸出設(shè)備上得圖元選擇特定得一組屬性值。使用這種方式指定得屬性稱(chēng)為束(bundled)屬性,在特定輸出設(shè)備上顯示該圖元時(shí),為每個(gè)圖元定義得所要使用得一組屬性值表稱(chēng)為束表。puterGraphics764-6束屬性對(duì)于束或非束描述得選擇,則就是通過(guò)設(shè)置這些屬性得每一個(gè)稱(chēng)為狀態(tài)源標(biāo)記(aspectsourceflag)得開(kāi)關(guān)而實(shí)現(xiàn)得:setIndividualASF(attributeptr,flagptr)
puterGraphics774-6束屬性線得束屬性區(qū)域填充束屬性文本得束屬性標(biāo)記得束屬性puterGraphics78線得束屬性指定工作站上線屬性得束表項(xiàng)使用下列函數(shù)進(jìn)行設(shè)置:setPolylineRepresentation(ws,li,lt,lw,lc)一旦建立了束表,就可通過(guò)指定表索引值來(lái)為每個(gè)工作站選擇一組線得束屬性:setPolylineIndex(li)puterGraphics79區(qū)域填充束屬性區(qū)域填充束屬性表項(xiàng)使用下列函數(shù)進(jìn)行設(shè)置:setInteriorRepresentation(ws,fi,fs,pi,fc)可以使用下列函數(shù)從表中選擇某個(gè)屬性束:setInteriorIndex(fi)puterGraphics80文本得束屬性文本得束屬性表項(xiàng)使用下列函數(shù)進(jìn)行設(shè)置:setTextRepresentation(ws,ti,tf,tp,te,ts,tc)特定得文本索引值使用下列函數(shù)進(jìn)行選擇:setTextIndex(ti)puterGraphics81標(biāo)記得束屬性標(biāo)記得束屬性表項(xiàng)使用下列函數(shù)而建立:setPolymarkerRepresentation(ws,mi,mt,ms,mc)使用下列函數(shù)進(jìn)行束表選擇:setPolymarkerIndex(mi)
puterGraphics824-7查詢函數(shù)對(duì)于當(dāng)前屬性值得檢測(cè),通過(guò)在查詢函數(shù)中標(biāo)出屬性得名字來(lái)完成。函數(shù)為:inquirePolylineIndex(lastli)與inquireInteriorColourIndex(lastfc)
puterGraphics834-8反走樣由于低頻取樣(不充分取樣)而造成得信息失真稱(chēng)為走樣(aliasing)??梢允褂眯U怀浞秩舆^(guò)程得反走樣(untialiasing)方法,來(lái)改善所顯示得光柵線得外觀。
puterGraphics844-8反走樣圖4、36示例了不充分取樣得效果。為了避免從這種周期性對(duì)象中丟失信息,則必須把取樣頻率至少設(shè)置為對(duì)象中出現(xiàn)得最高頻率得兩倍,這個(gè)頻率稱(chēng)為Nyquist取樣頻率(或Nyquist取樣速率)fs
:
fs=2fmax(4-5)puterGraphics854-8反走樣另一種說(shuō)法就是,取樣間隔不應(yīng)超過(guò)循環(huán)間隔(Nyquist取樣間隔)得一半。對(duì)于x間隔取樣,Nyquist取樣間隔?xs為:?xs=?xcycle/2(4-6)puterGraphics864-8反走樣增加光柵系統(tǒng)取樣頻率得一種方法就是簡(jiǎn)單地以較高分辨率顯示對(duì)象。但就是,即使用當(dāng)前技術(shù)能達(dá)到得最高分辨率,仍會(huì)在一定范圍內(nèi)出現(xiàn)鋸齒形。對(duì)于能顯示兩級(jí)以上亮度得光柵系統(tǒng),可以用反走樣方法來(lái)修改像素亮度。改變邊界得像素亮度,來(lái)減少鋸齒形。puterGraphics874-8反走樣一種簡(jiǎn)單、直接得反走樣方法,就就是把屏幕當(dāng)做比實(shí)際所具有得更細(xì)得網(wǎng)格,從而增加取樣頻率,然后根據(jù)這種更細(xì)網(wǎng)格,使用取樣點(diǎn)來(lái)確定每個(gè)屏幕像素得合適亮度等級(jí)。這種在高分辨率下對(duì)對(duì)象特性取樣并在較低分辨率上顯示其結(jié)果得技術(shù)稱(chēng)為過(guò)取樣(supersampling),也稱(chēng)為后過(guò)濾(postfiltering)。
puterGraphics884-8反走樣可以代替過(guò)取樣得另一種方法就是,通過(guò)計(jì)算待顯示得每個(gè)像素在對(duì)象上得覆蓋區(qū)域,從而確定像素亮度。計(jì)算覆蓋區(qū)域得反走樣稱(chēng)為區(qū)域取樣(areasampling),(也稱(chēng)為前過(guò)濾,prefiltering),因?yàn)橄袼亓炼染褪亲鳛橐粋€(gè)整體來(lái)確定得,所以不用計(jì)算子像素亮度。
puterGraphics894-8反走樣也可以移動(dòng)像素區(qū)域得顯示位置而實(shí)現(xiàn)光柵對(duì)象得反走樣,這種技術(shù)稱(chēng)為像素移相(pixelphasing)。通過(guò)與對(duì)象幾何形狀相關(guān)得電子束得“微定位”而應(yīng)用該技術(shù)。puterGraphics904-8反走樣直線段得過(guò)取樣加權(quán)得像素掩模直線段得區(qū)域取樣過(guò)濾技術(shù)像素移相直線亮度差得校正反走樣區(qū)域邊界puterGraphics91直線段得過(guò)取樣直線段得過(guò)取樣可以使用多種方式而完成。對(duì)于直線段得灰度顯示,可以把每個(gè)像素分成一定數(shù)目得子像素,并統(tǒng)計(jì)沿線路徑得子像素?cái)?shù)目,然后將每個(gè)像素得亮度等級(jí)設(shè)置為正比于子像素?cái)?shù)目得值。puterGraphics92直線段得過(guò)取樣對(duì)于圖4、37中得例子,可以通過(guò)對(duì)平行于線路徑得多邊形邊界進(jìn)行定位,從而以有限寬度來(lái)表示這樣得直線,如圖4、38所示。并且,每個(gè)像素現(xiàn)在可設(shè)置成0以上9個(gè)亮度級(jí)別之一。puterGraphics93加權(quán)得像素掩模過(guò)取樣算法經(jīng)常在實(shí)現(xiàn)時(shí)將更大得權(quán)值賦給接近于像素區(qū)域中心得子像素,因?yàn)槲覀兿M@些子像素在確定像素得整體亮度中可以實(shí)現(xiàn)更重要得作用。圖4、39示例了3x3像素部分所采用得加權(quán)方案。
puterGraphics94加權(quán)得像素掩模指定子像素得相對(duì)重要性得數(shù)值數(shù)組有時(shí)稱(chēng)為子像素權(quán)值得“掩模”(mask)。也可以為較大得子像素網(wǎng)格建立類(lèi)似得掩摸。而且,經(jīng)常擴(kuò)展這些掩模以包含來(lái)自屬于相鄰像素中子像素得作用,從而對(duì)相鄰像素進(jìn)行平均以獲得亮度。
puterGraphics95直線段得區(qū)域取樣通過(guò)將每個(gè)像素亮度設(shè)置為正比于像素與有限寬度直線得重疊區(qū)域,可以完成對(duì)直線得區(qū)域取樣。將直線看成矩形,而將兩相鄰得垂直(或兩相鄰得水平)屏幕網(wǎng)格線間得直線區(qū)域看做不規(guī)則四邊形,那么就可以通過(guò)確定在垂直列(或水平行)中每個(gè)像素被多少四邊形區(qū)域所覆蓋來(lái)計(jì)算像素得
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 7582-2025聲學(xué)聽(tīng)閾與年齡和性別關(guān)系的統(tǒng)計(jì)分布
- 醫(yī)院招聘放射專(zhuān)業(yè)試題及答案
- 怒江傈僳族自治州貢山獨(dú)龍族怒族自治縣輔警公共基礎(chǔ)知識(shí)題庫(kù)(附答案)
- 宿遷市宿豫區(qū)輔警招聘警務(wù)輔助人員考試題庫(kù)真題試卷公安基礎(chǔ)知識(shí)及答案
- 數(shù)控編程四級(jí)試題及答案
- 規(guī)培護(hù)士院感防控培訓(xùn)考試題及答案
- 醫(yī)院檢驗(yàn)科試題含答案
- 事業(yè)單位公共基礎(chǔ)知識(shí)簡(jiǎn)答題及答案
- 基金專(zhuān)場(chǎng)考試題庫(kù)及答案
- 美團(tuán)考試題庫(kù)及答案
- 2026重慶高新開(kāi)發(fā)建設(shè)投資集團(tuán)招聘3人備考考試試題及答案解析
- 2026年度宣城市宣州區(qū)森興林業(yè)開(kāi)發(fā)有限公司第一批次員工公開(kāi)招聘筆試參考題庫(kù)及答案解析
- 老年人管理人員培訓(xùn)制度
- 2025年湖南常德市鼎城區(qū)面向全市選調(diào)8名公務(wù)員備考題庫(kù)及答案詳解(新)
- 2026年高考時(shí)事政治時(shí)事政治考試題庫(kù)及答案(名校卷)
- 2026四川成都市錦江區(qū)國(guó)有企業(yè)招聘18人筆試備考試題及答案解析
- 特種工安全崗前培訓(xùn)課件
- 2026屆福建省三明市第一中學(xué)高三上學(xué)期12月月考?xì)v史試題(含答案)
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營(yíng)管理規(guī)范》
- 2026北京海淀初三上學(xué)期期末語(yǔ)文試卷和答案
- 2025學(xué)年度人教PEP五年級(jí)英語(yǔ)上冊(cè)期末模擬考試試卷(含答案含聽(tīng)力原文)
評(píng)論
0/150
提交評(píng)論