版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、概述概述8.1 開窗口及裁剪的基本概念開窗口及裁剪的基本概念 8.1.1 坐標(biāo)系坐標(biāo)系 建模坐標(biāo)系建模坐標(biāo)系 世界坐標(biāo)系世界坐標(biāo)系 設(shè)備坐標(biāo)系設(shè)備坐標(biāo)系 規(guī)格化設(shè)備坐標(biāo)系規(guī)格化設(shè)備坐標(biāo)系 坐標(biāo)系變換坐標(biāo)系變換8.1.2 窗口與視區(qū)窗口與視區(qū) 8.1.2 窗口與視區(qū)窗口與視區(qū)窗口與視區(qū)窗口與視區(qū)8.1.3 窗口在圖形顯示中的應(yīng)用窗口在圖形顯示中的應(yīng)用 8.2 窗口到視區(qū)的變換窗口到視區(qū)的變換 -minminmaxminmaxminxwxwxv xvxwxwxvxv-m inm inm axm inm axm inywywyvyvywywyvyv窗口到視區(qū)的變換窗口到視區(qū)的變換-=(-)+-max
2、minminminmaxminxvxvxvxwxwxvxwxw-=(-)+-maxminminminmaxminyvyvyvywywyvywyw窗口到視區(qū)的變換窗口到視區(qū)的變換()m axm inm axm inm axm inm axm inxv -xvyv -yvS,xw -xwyw -yw窗口到視區(qū)的變換窗口到視區(qū)的變換(,) () (,)00maxminmaxminWC DCminminminminmaxminmaxminmaxminmaxminminminmaxminmaxminmaxminmaxminWC DCminmaxminmaxmxv-xvyv-yvNT xvyvS,T xw
3、ywxw -xwyw -ywxvxvxvxvxwxvxwxwxwxwyvyvyvyvNywywywywyw 001mininyv11wwDCWCvvyxNyx8.3 裁剪裁剪 點(diǎn)的裁剪點(diǎn)的裁剪8.3.1直線的裁剪直線的裁剪直線段和窗口邊界的交點(diǎn)直線段和窗口邊界的交點(diǎn)基本思想基本思想:對每條直線段p1(x1,y1)p2(x2,y2)分三種情況處理:(1) 直線段完全可見,“簡取”之。(2) 直線段完全不可見,“簡棄”之。(3) 直線段既不滿足“簡取”的條件,也不滿足“簡棄”的條件,需要對直線段按交點(diǎn)進(jìn)行分段,分段后重復(fù)上述處理。8.3.2 Cohen-Sutherland算法算法P1P2P5P6
4、P3P4 若xxr,則D1=1,否則D1=0; 若yyt,則D3=1,否則D3=0。 任何位賦值為任何位賦值為1,代表端點(diǎn)落在相應(yīng)的位置上,否則該位為,代表端點(diǎn)落在相應(yīng)的位置上,否則該位為0。若端點(diǎn)在。若端點(diǎn)在裁剪矩形內(nèi),區(qū)域碼為裁剪矩形內(nèi),區(qū)域碼為0000。如果端點(diǎn)落在矩形的左下角,則區(qū)域碼為。如果端點(diǎn)落在矩形的左下角,則區(qū)域碼為0101,其它類推。,其它類推。000010000100000110010101101000100110Cohen-Sutherland算法算法n(1)若code1|code2=0,對直線段應(yīng)簡取之。n(2)若code1&code20,對直線段可簡棄之。n(
5、3)若上述兩條件均不成立。則需求出直線段與窗口邊界的交點(diǎn)。在交點(diǎn)處把線段一分為二,其中必有一段完全在窗口外,可以棄之。再對另一段重復(fù)進(jìn)行上述處理,直到該線段完全被舍棄或者找到位于窗口內(nèi)的一段線段為止。000010000100000110010101101000100110Cohen-Sutherland算法算法Cohen-Sutherland算法算法算法的步驟算法的步驟:(1)輸入直線段的兩端點(diǎn)坐標(biāo):p1(x1,y1)、p2(x2,y2),以及窗口的四條邊界坐標(biāo):yt、yb、xl和xr。(2)對p1、p2進(jìn)行編碼:點(diǎn)p1的編碼為code1,點(diǎn)p2的編碼為code2。(3)若code1|code
6、2=0,對直線段應(yīng)簡取之,轉(zhuǎn)(6);否則,若code1&code20,對直線段可簡棄之,轉(zhuǎn)(7);當(dāng)上述兩條均不滿足時,進(jìn)行步驟(4)。(4)確保p1在窗口外部:若p1在窗口內(nèi),則交換p1和p2的坐標(biāo)值和編碼。(5)按左、右、下、上的順序求出直線段與窗口邊界的交點(diǎn)按左、右、下、上的順序求出直線段與窗口邊界的交點(diǎn),并用該交點(diǎn)的坐標(biāo)值替換p1的坐標(biāo)值。也即在交點(diǎn)也即在交點(diǎn)s s處把線段一分為二,并去掉處把線段一分為二,并去掉p p1 1s s這一段。這一段??紤]到p1是窗口外的一點(diǎn),因此可以去掉p1s。轉(zhuǎn)(2)。(6)用直線掃描轉(zhuǎn)換算法畫出當(dāng)前的直線段p1p2。(7)算法結(jié)束。Cohen-
7、Sutherland算法算法/程序程序8-1區(qū)域碼直線裁剪算法區(qū)域碼直線裁剪算法void Line_Clipping(x1,y1,x2,y2,xw_xmin,yw_ymin,xw_max,yw_max)float x1,y1,x2,y2,xw_xmin,yw_ymin,xw_max,yw_max;/*(x1,y1)和和(x2,y2)是線段端點(diǎn)坐標(biāo)是線段端點(diǎn)坐標(biāo)*/ int draw,done; int code1,code2,code; f1oat x,y; draw=FALSE; done=FALSE; code1=get_code(x1 t y1-xw_xminf yw_yminI xw_
8、maxt yw_max); code2=get_code(x2,y2,xw_xmin,yw_ymin,xw_max,yw_max); while(!Done) if(code1=0&code2=0)/*完全可見完全可見*/ draw=TRUE; done=TRUE; else if(code1&code2 !=0) /*顯然完全不可見顯然完全不可見*/ done=TRUE; else if(code1!=0) code=code1; else code=code2; if(code&TOP!=0) /*求線段與窗口上邊界的交點(diǎn)求線段與窗口上邊界的交點(diǎn)*/ y=yw_ym
9、ax; x=x1+(y_y1)*(x2-x1)/(y2-y1); else if(code&BOTTOM!=0) /*求線段與窗口下邊界的交點(diǎn)求線段與窗口下邊界的交點(diǎn)*/ y=yw_ymin; x=x1+(y_y1)*(x2-x1)/(y2-y1); else if(code&RTGHT!=0) /*求線段與窗口右邊界的交點(diǎn)求線段與窗口右邊界的交點(diǎn)*/ x=xw_xmax; y=y1+(x-x1)*(y2-y1)/(x2-x1); else if(code&LIFT!=0) /*求線段與窗口左邊界的交點(diǎn)求線段與窗口左邊界的交點(diǎn)*/ x=xw_xmin; y=y1+(x-
10、x1)*(y2-y1)/(x2-x1); if (code=code1) x1=x; y1=y; code1=get_code(x1,y1,xw_xmin, yw_ymin,xw_xmax,yw_ymax); else x2=x;y2=y; code2=get_code(x2,y2,xw_xmin, yw_ymin,xw_xmax,yw_ymax); if(draw) Draw_line(x1,y1,x2,y2); /*端點(diǎn)坐標(biāo)為實(shí)線的畫線算法端點(diǎn)坐標(biāo)為實(shí)線的畫線算法*/ int get_code(x,y,xw_xmin, yw_ymin,xw_xmax,yw_ymax) /*得到點(diǎn)得到點(diǎn)(x
11、,Y)所在區(qū)域的編碼所在區(qū)域的編碼*/ float x,y,xw_xmin,yw_ymin,xw_max,yw_max; int code; code=0; if(yyw_ymax) code|=TOP; else if(yxw_xmax) code|=RIGHT; eise if xxw xmin) code|=LEFT; return code; 8.3.3 中點(diǎn)分割算法中點(diǎn)分割算法 8.3.4 Liang - Barsky算法算法 12111211=+(-) =+=+(-)u=+x xxx u xx uyyyyyy u 11+minmaxminmaxxwxx uxwywyy uyw Li
12、ang - Barsky算法算法, =1,2,3,4kkp uqk111221331441=-,=-=,=-=-,=-=,=-minmaxminmaxpxqxxwpxqxwxpyqyywpyqywy11+minmaxminmaxxwxx uxwywyy uyw Liang - Barsky算法算法Liang - Barsky算法算法EnterEnterLeaveLeaveEnterLeaveEnterLeaveLiang - Barsky算法算法(1)(1)初始化初始化,u1=0,u2=1;,u1=0,u2=1;(2)(2)對每一窗口邊界計算出相應(yīng)的對每一窗口邊界計算出相應(yīng)的p p及及q q值
13、值; ;(3)(3)用函數(shù)用函數(shù)CliptestCliptest由參數(shù)由參數(shù)p p及及q q決定此直線能否被排除或者決定交點(diǎn)參數(shù)決定此直線能否被排除或者決定交點(diǎn)參數(shù)是否要調(diào)整是否要調(diào)整; ;(4)(4)當(dāng)當(dāng)p0p0p0時時, ,用參數(shù)用參數(shù)r r修改修改u2u2值值, ,如果最后有如果最后有u1 u2,u1 u2,則排除此直線則排除此直線; ;否則否則, ,只有當(dāng)新值使直線縮短時只有當(dāng)新值使直線縮短時, ,才修改相應(yīng)的才修改相應(yīng)的u;u;(5)(5)當(dāng)當(dāng)p=0p=0且且q0qxw_xmin,t0,&t1) if(Clip_Top (dx,rect-xw_xmax-xl,t0,&
14、t1) dy=y2-ylj if(Clip_Top (-dy,yl-rect-yw_xmin,&t0,&t1) if(Clip_Top (dy,rect-xw_xmax-yl,&t0,&t1) Line(int)(xl+t0*dx),(int)(yl+t0*dy), (int)(xl+tl*dx), (int)(yl+tl*dy); return; WriteText(“plp2完全不可見完全不可見”);8.4 多邊形裁剪多邊形裁剪 多邊形裁剪多邊形裁剪8.4.1 Sutherland-Hodgman算法算法 Sutherland-Hodgman算法算法/程序程序8-3 Sutherland-Hodgman多邊形裁剪多邊形裁剪Sutherland
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 18892-2024復(fù)印機(jī)械環(huán)境保護(hù)要求復(fù)印機(jī)及多功能一體機(jī)節(jié)能要求
- GB/T 33993-2024商品二維碼
- 二零二五年度熟食加工企業(yè)環(huán)保設(shè)施租賃合同2篇
- 二零二五年飼料生產(chǎn)廢棄物處理合同2篇
- 2024有關(guān)工程合作協(xié)議書模板
- 2025年度文化產(chǎn)業(yè)并購知識產(chǎn)權(quán)許可及運(yùn)營合同3篇
- 二零二五版吊車租賃項目驗(yàn)收與交付合同3篇
- 二零二五版?zhèn)}單質(zhì)押擔(dān)保與倉儲物流合同3篇
- 2025年度綠色能源廠房租賃合同補(bǔ)充協(xié)議3篇
- 個性化家裝服務(wù)詳細(xì)協(xié)議條款版A版
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 輻射安全知識培訓(xùn)課件
- 2023-2024學(xué)年八年級(上)期末數(shù)學(xué)試卷
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025年煙花爆竹儲存證考試題庫
- 2025年北京機(jī)場地服崗位招聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- ICH《M10:生物分析方法驗(yàn)證及樣品分析》
- 2024-2030年全球及中國醫(yī)用除塵器行業(yè)銷售模式及盈利前景預(yù)測報告
- 2025學(xué)年人教新版英語七下Unit1隨堂小測
- 2024年度光伏發(fā)電項目施工合同工程量追加補(bǔ)充協(xié)議3篇
- 建筑廢棄混凝土處置和再生建材利用措施計劃
評論
0/150
提交評論