




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、裁 剪Ray1內(nèi)容圖形觀察/變換/顯示直線段裁剪多邊形裁剪字符裁剪圖形觀察、變換與顯示二維圖形輸出流水線二維變換二維裁剪規(guī)范化變換/窗口-視區(qū)變換工作站變換觀察變換圖形顯示用戶域用戶域用戶定義設(shè)計(jì)對(duì)象的連續(xù)無(wú)限的二維或三維空間。窗口在用戶域中指定的一個(gè)區(qū)域,用戶只能將該區(qū)域的圖形輸出到圖形設(shè)備上。窗口是用戶域的一個(gè)子域。窗口一般是矩形區(qū)域,可用其左下角點(diǎn)和右上角點(diǎn)坐標(biāo)來(lái)表示。通常窗口的邊界與坐標(biāo)軸平行。窗口可以嵌套。110視區(qū)viewport規(guī)范化設(shè)備坐標(biāo)系規(guī)范化設(shè)備坐標(biāo)系:用一個(gè)單位正方形定義的一個(gè)虛擬顯示設(shè)備的顯示區(qū)域,且單位正方形的左下角位于坐標(biāo)系統(tǒng)的原點(diǎn)。目的與作用:引入一個(gè)與顯示設(shè)備
2、無(wú)關(guān)的工具描述顯示區(qū)域。使應(yīng)用程序與圖形設(shè)備無(wú)關(guān),增強(qiáng)應(yīng)用程序的可移植性。窗口(wx,wy)1100視區(qū)(vx,vy)窗口-視區(qū)變換窗口定義顯示什么;視區(qū)定義在何處顯示矩陣表達(dá)式:HV0工作站視區(qū)設(shè)備/圖像坐標(biāo)系工作站變換:將規(guī)范化坐標(biāo)變換為離散設(shè)備/圖像坐標(biāo)。它本質(zhì)上是第二個(gè)窗口-視區(qū)變換。110規(guī)范化設(shè)備坐標(biāo)系屏幕區(qū)工作站變換 1 主菜單區(qū)2 子菜單區(qū) 4 提示信息區(qū) 3 圖形顯示區(qū)視圖分區(qū)設(shè)備坐標(biāo)系(DC)圖形輸出設(shè)備(如顯示器、繪圖機(jī))上的坐標(biāo)系是一個(gè)二維平面坐標(biāo)系定義域是整數(shù)域且有界 屏幕域屏幕域是圖形設(shè)備上輸出圖形的最大區(qū)域屏幕域是有限的整數(shù)域,如分辨率為1024768的顯示器,其
3、屏幕域 DC 可定義為: DC010230767視圖區(qū)用戶在屏幕域內(nèi)指定的用于顯示圖形的區(qū)域用設(shè)備坐標(biāo)定義,一般定義成矩形,由其左下角點(diǎn)和右上角點(diǎn)坐標(biāo)來(lái)定義一個(gè)屏幕可以定義多個(gè)視圖區(qū),并且視圖區(qū)可以嵌套屏幕域和視圖區(qū)直線段裁剪裁剪裁剪(clipping)是裁去窗口之外物體的一種操作。直線段裁剪直線段裁剪算法是復(fù)雜圖元裁剪的基礎(chǔ)。復(fù)雜的曲線可以通過(guò)折線段來(lái)近似,從而裁剪問(wèn)題也可以化為直線段的裁剪問(wèn)題。Cohen-Sutherland裁剪基本思想對(duì)于每條線段P1P2分為三種情況處理分為三種情況處理:若P1P2完全在窗口內(nèi),則顯示該線段P1P2,簡(jiǎn)稱“取”。若P1P2明顯在窗口外,則丟棄該線段,簡(jiǎn)稱
4、“棄”。若線段不滿足“取”或 “棄”的條件,則在交點(diǎn)處把線段分為兩段。其中一段完全在窗口外,可棄之。然后對(duì)另一段重復(fù)上述處理。用編碼方法判斷以上三種情況采用4位編碼code1=0且code2=0P1P2完全在窗口內(nèi)“取”code1&code20P1P2明顯在窗口外“棄” 既不是1又不是2的其它情況在交點(diǎn)處把線段分為兩段,其中一段完全在窗口外,可棄之,另一段重復(fù)上述處理。計(jì)算線段與窗口邊界交點(diǎn)的具體算法#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8if(LEFT&code !=0)x=XL;y=y1+(y2-y1)*(XL-x
5、1)/(x2-x1);else if(RIGHT&code !=0)x=XR;y=y1+(y2-y1)*(XR-x1)/(x2-x1);else if(BOTTOM&code !=0)y=YB;x=x1+(x2-x1)*(YB-y1)/(y2-y1);else if(TOP & code !=0)y=YT;x=x1+(x2-x1)*(YT-y1)/(y2-y1);中點(diǎn)分割法求線段與窗口的交點(diǎn)A、B分別為距P0、P1最近的可見(jiàn)點(diǎn),Pm為P0P1中點(diǎn)從P0出發(fā)找最近可見(jiàn)點(diǎn)的方法先求出P0P1的中點(diǎn)Pm若P0Pm不是顯然不可見(jiàn)的,并且P0Pm在窗口中有可見(jiàn)部分,則距P0最近的可見(jiàn)點(diǎn)一定落在P0Pm上
6、,所以用P0Pm代替P0P1;否則取PmP1代替P0P1;再對(duì)新的P0P1求中點(diǎn)Pm。重復(fù)上述過(guò)程,直到PmP1長(zhǎng)度小于給定的控制常數(shù)為止,此時(shí)Pm收斂于交點(diǎn)。從P1出發(fā)找最近可見(jiàn)點(diǎn)采用上面類似方法Cyrus-Beck算法ANP2P1P(tl)P(tu)P(t)=(P2-P1)t+P1N(P(t)-A)0,P(t)在多邊形內(nèi)側(cè)N(P(t)-A)=0,P(t)在多邊形邊線N(P(t)-A)0,P(t)在多邊形外側(cè)N是內(nèi)法向量P(t)=(P2-P1)t+P1梁友棟算法算法簡(jiǎn)介梁友棟算法是Cyrus-Beck算法的特例當(dāng)凸多邊形是矩形窗口時(shí), Cyrus-Beck算法便退化為梁友棟算法邊內(nèi)法向量邊上
7、點(diǎn)AP1-At=-N(P1-A)/N(P2-P1)X=XL(1,0)(XL,Y)(X1-XL,Y1-Y)-(X1-XL)/(X2-X1)X=XR(-1,0)(XR,Y)(X1-XR,Y1-Y)-(X1-XR)/(X2-X1)Y=YB(0,1)(X,YB)(X1-X,Y1-YB)-(Y1-YB)/(Y2-Y1)Y=YT(0,-1)(X,YT)(X1-X,Y1-YT)-(Y1-YT)/(Y2-Y1)程序?qū)崿F(xiàn)void LB_LineClip(x1,y1,x2,y2,XL,XR,YB,YT)float x1,y1,x2,y2,XL,XR,YB,YT;float dx,dy,u1,u2;tl=0;tu=
8、1;dx =x2-x1;dy =y2-y1;if(ClipT(-dx,x1-Xl,&u1,&u2)if(ClipT(dx,XR-x1, &u1,&u2)if(ClipT(-dy,y1-YB, &u1,&u2)if(ClipT(dy,YT-y1, &u1,&u2)displayline(x1+u1*dx,y1+u1*dy, x1+u2*dx,y1+u2*dy)return;bool ClipT(p,q,u1,u2)float p,q,*u1,*u2; float r;if(p*u2)return FALSE;else if(r*u1) *u1=r;return TRUE;else if(p0)r=p/q;if(r*u1)return FALSE;else if(r*u2)*u2=r;return TRUE;else if(q0) return FALSE;return TRUE;多邊形裁剪基本思想一次用窗口的一條邊裁剪多邊形??紤]窗口的一條邊以及延長(zhǎng)線構(gòu)成的裁剪線該線把平面分成兩個(gè)部分:可見(jiàn)一側(cè);不可見(jiàn)一側(cè)。多邊形的各條邊的兩端點(diǎn)S、P。它們與裁剪線的位置關(guān)系只有四種:情況(1)僅輸出頂點(diǎn)P;情況(2)輸出0個(gè)頂點(diǎn);情況(3)輸出線段SP與裁剪線的交點(diǎn)I;情況(4)輸出線段SP與裁剪線的交點(diǎn)I和終點(diǎn)P.字符裁剪字符裁剪分類串精度:將包圍字串的外接矩形對(duì)窗口作裁剪
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)用耗材購(gòu)銷合同
- 品牌服務(wù)協(xié)議合同
- 會(huì)議場(chǎng)地租賃費(fèi)用合同
- 電力系統(tǒng)自動(dòng)化控制原理測(cè)試卷
- 教學(xué)場(chǎng)地租賃合同協(xié)議
- 國(guó)際貿(mào)易合同樣書一年
- 樓面天棚保溫施工方案
- 五方通話對(duì)講布線施工方案
- 嘉定區(qū)衛(wèi)生間施工方案
- 礦場(chǎng)塌陷區(qū)改造方案
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 醫(yī)學(xué)課件胸腔穿刺術(shù)3
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 車間現(xiàn)場(chǎng)管理培訓(xùn)
- 部編版《道德與法治》六年級(jí)下冊(cè)第6課《探訪古代文明》精美課件(第1課時(shí))
- (正式版)CB∕T 4548-2024 船舶行業(yè)企業(yè)相關(guān)方安全管理要求
- 財(cái)務(wù)管理與成本控制實(shí)施方案三篇
- 全過(guò)程工程咨詢管理服務(wù)方案
- 20S515 鋼筋混凝土及磚砌排水檢查井
- 2024年江蘇旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案
- 防火封堵施工施工工藝
評(píng)論
0/150
提交評(píng)論