計算機圖形學(xué)2425的知識_第1頁
計算機圖形學(xué)2425的知識_第2頁
計算機圖形學(xué)2425的知識_第3頁
計算機圖形學(xué)2425的知識_第4頁
計算機圖形學(xué)2425的知識_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2.4字符的生成2.4.1點陣式字符

點陣式字符將字符形狀表示為一個矩形點陣,由點陣中點的不同值表達字符的形狀。

使用點陣式字符時,需將字庫中的矩形點陣復(fù)制到緩沖器中指定的單元中去。在復(fù)制過程中,可以施加變換,以獲得簡單的變化。圖2.11(b)~(d)列出了以字母P為原型的一些變化例子。圖2.11點陣式字符及其變化

1矩陣中的每個元素都是一位二進制位。(1:字符顏色;0:背景顏色)算法如下:Writechar(x0,y0,value)Intx0,y0,value;{for(j=0;j<=ymax;j++)for(i=0;i<=xmax;i++)if(mask(i,j)<>0)set_pixel(x0+i;y0+j;value);elseset_pixel(x0+i;y0+j;background);}22.4字符的生成2.4.2矢量式字符

矢量式字符將字符表達為點坐標的序列,相鄰兩點表示一條矢量,字符的形狀便由矢量序列刻畫。圖2.12示出用矢量式表示的字符“B”?!癇”是由頂點序列{a,b,c,d,e,f,e,g,h,i,j,k,j,

a,l}的坐標表達。圖2.12矢量式表示字符“B”32.4字符的生成2.4.3

方向編碼式字符

方向編碼式字符用有限的若干種方向編碼來表達一個字符。圖2.14(a)示出字母“B”的方向矢量構(gòu)成。這樣,“B”就表示為8方向編碼{666}。方向編碼式字符很容易被填入幀暫存寄存器中予以顯示(圖2.14(b)),方向編碼所占的空間比較小,它也能接受一些特定的變換操作。圖2.13字符的8方向編碼

圖2.14方向編碼式字符的實例42.4字符的生成2.4.4輪廓字形技術(shù)

直接使用點陣式字符方法將耗費巨大的存儲空間。壓縮方法有多種,最簡單的有黑白段壓縮法。另一種方法是部件壓縮法。三是輪廓字形法,這種方法壓縮比大,且能保證字符質(zhì)量,是當(dāng)今國際上最流行的一種方法。

輪廓字形法采用直線、或者二次Bezier曲線、三次Bezier曲線的集合來描述一個字符的輪廓線。輪廓線構(gòu)成一個或若干個封閉的平面區(qū)域。輪廓線定義和一些指示橫寬、豎寬、基點、基線等的控制信息,就構(gòu)成了字符的壓縮數(shù)據(jù)。52.5圖形求交

在計算機圖形學(xué)中常常會遇到求交計算。求交運算是比較復(fù)雜的,為了減少計算量,在進行真正的求交計算之前,往往先用凸包等輔助結(jié)構(gòu)進行粗略地比較,排除那些顯然不相交的情形。容差求交問題可以分為兩類:

求交點求交線

62.5圖形求交

2.5.1求交點算法

求交點可以分兩種情況,即求線與線的交點以及求線與面的交點。⒈直線段與直線段的交點假設(shè)兩條直線的端點分別為P1、P2和Q1、Q2,則直線可以用向量形式表示為P(t)=A+Bt,0≤t≤1Q(s)=C+Ds,0≤s≤1其中,A=P1,B=P2P1,C=Q1,D=Q2Q1。構(gòu)造方程

A+Bt=C+Ds(2.9)

對三維空間中的直線段來說,上述方程組實際上是一個二元一次方程組,由3個方程式組成。可以從其中兩個解出s、t,再用第三個驗證解的有效性。當(dāng)所得的解(ti,si)是有效解時,可用兩個方程之一計算交點坐標,例如P(ti)=A+Bti。

72.5圖形求交2.5.1求交點算法(續(xù))

根據(jù)向量的基本性質(zhì),可直接計算s與t。對方程(2.9)兩邊構(gòu)造點積得(CD)·(A+Bt)=(CD)·(C+Ds)

由于CD同時垂直于C和D,等式右邊為0。故有類似地有82.5圖形求交2.5.1求交點算法(續(xù))

2.直線段與平面的交點圖2.15線段與平面求交

平面上的點表示為P(u,w)=A+uB+wC,直線段上的點表示為Q(t)=D+tE,二者的交點記為R。假設(shè)線段不平行于平面,則它們交于

R=P(u,w)=Q(t),即A+uB+wC=D+tE等式兩邊點乘(BC),得

(BC)·(A+uB+wC)=(BC)·(D+tE)由于BC既垂直于B,又垂直于C,故有(BC)·A=(BC)·(D+tE)92.5圖形求交2.5.1求交點算法(續(xù))

可解出類似求得102.5圖形求交

2.5.2求交線算法

⒈平面與平面的交線

當(dāng)兩個一般的多邊形相交時,可能有多段交線??梢园褍蓚€多邊形分別記為A和B,用如下的算法求出他們的交線:把A的所有邊與B相交,求出所有有效交點;把B的所有邊與A相交,求出所有有效交點;把所有交點先按y,再按x的大小進行排序;把每對交點所形成線段的中點與A和B進行包含性檢測,若該中點既在A中又在B中,則這對交點定義了一條交線段。

112.5圖形求交2.5.3包含判定算法

判斷點與線段的包含關(guān)系,也就是判斷點與線的最短距離是否位于容差范圍內(nèi)。⒈點與直線段的包含判定假設(shè)點坐標為P(x,y,z),直線段端點為P1(x1,y1,z1)、P2(x2,y2,z2),則點P到線段P1P2的距離的平方為

d2=(xx1)2+(yy1)2+(zz1)2[(x2x1)(xx1)+(y2y1)(yy1)+(z2z1)(zz1)]2/[(x2x1)2+(y2y1)2+(z2z1)2]

當(dāng)d2<2時,認為點在線段(或其延長線)上,這時還需進一步判斷點是否落在直線段的有效區(qū)間內(nèi)。對坐標分量進行比較,假設(shè)線段兩端點的x分量不等(否則所有分量均相等,那么線段兩端點重合,線段退化為一點),那么當(dāng)xx1與xx2異號時,點P在線段的有效區(qū)間內(nèi)。122.5圖形求交2.5.3包含判定算法(續(xù))2.點與平面區(qū)域的包含判定設(shè)點坐標為P(x,y,z),平面方程為ax+by+cz+d=0。則點到平面的距離為若d<,則認為點在平面上;否則,認為點不在平面上。對落在平面上的點還應(yīng)進一步判別它是否落在有效區(qū)域內(nèi)。下面以平面區(qū)域多邊形為例,介紹有關(guān)算法。判斷平面上的一個點是否包含在該平面的一個多邊形內(nèi),有多種算法,這里僅介紹常用的3種,即叉積判斷法、夾角之和檢驗法以及交點計數(shù)檢驗法。

132.5圖形求交2.5.3包含判定算法(續(xù))⑴叉積判斷法假設(shè)判斷點為P0,多邊形頂點按順序排列為P1,P2,…,Pn,如圖2.16所示。令Vi=PiP0,其中,i=1,2,…,n,Vn+1=V1。那么,P0在多邊形內(nèi)的充要條件是叉積ViVi+1(i=1,2,…,n)的符號相同。叉積判斷法僅適用于凸多邊形。當(dāng)多邊形為凹多邊形時,可采用后面介紹的兩種方法。圖2.16叉積判斷法142.5圖形求交2.5.3包含判定算法(續(xù))⑵夾角之和檢驗法假設(shè)某平面上有點P0和多邊形P1P2P3P4P5,如圖2.17所示。將點P0分別與Pi相連,構(gòu)成向量Vi=PiP0,假設(shè)PiP0Pi+1=i。如果,則點P0在多邊形之外,如圖2.17(a)所示。如果,則點P0在多邊形之內(nèi),如圖2.17(b)所示。圖2.17夾角之和檢驗法

152.5圖形求交⑶交點計數(shù)檢驗法當(dāng)多邊形是凹多邊形,甚至還帶

溫馨提示

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

最新文檔

評論

0/150

提交評論