下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)報(bào)告Experimentation Report of Taiyuan teachers College報(bào) 告一、實(shí)驗(yàn)?zāi)康亩?、?shí)驗(yàn)原理三、實(shí)驗(yàn)儀器及材料內(nèi) 容四、實(shí)驗(yàn)方法五、實(shí)驗(yàn)記錄及數(shù)據(jù)處理六、誤差分析及討論系部計(jì)算機(jī)系年 級(jí)三年級(jí) 課程圖形學(xué)姓名 同組者 日期項(xiàng)目直線段的裁剪算法一、實(shí)驗(yàn)?zāi)康模? .熟悉圖形裁剪的基本知識(shí)2 . 掌握Cohen-Sutherland直線裁剪算法二、實(shí)驗(yàn)內(nèi)容:在矩形窗口的裁剪算法中,考慮到構(gòu)成圖形的基本元素就是線段,曲線可看成是有很多小線段逼近而成的,因此,討論線段的裁剪算法更為實(shí)用,即 Cohen-Sutherland 裁剪算法。Cohen-Suther
2、land裁剪算法具體思路如下。任意平面線段和矩形窗口白位置關(guān)系只會(huì)有如下3種:(1)完全落在窗口內(nèi)。(2)完全落在窗口外。(3)部分落在窗口內(nèi),部分落在窗口外。要想判斷線段和窗口的位置關(guān)系,只要找到線段的兩端點(diǎn)相對(duì)于矩形窗口的 位置即可,線段的兩端點(diǎn)相對(duì)于矩形窗口的位置可能會(huì)有如下幾種情況:(1)線段的兩個(gè)端點(diǎn)均在窗口內(nèi),這時(shí)線段全部落在窗口內(nèi),完全可見(jiàn),應(yīng)予 以保留。(2)線段的兩個(gè)端點(diǎn)均在窗口邊界線外同側(cè),這時(shí)線段全部落在窗口外,完全 不可見(jiàn),應(yīng)予以舍棄。(3)線段的一個(gè)端點(diǎn)在窗口內(nèi),另一個(gè)端點(diǎn)在窗口外,這時(shí)線段部分可見(jiàn),應(yīng) 求出線段與窗口邊界線的交點(diǎn),從而得到線段在窗口內(nèi)的可見(jiàn)部分。(
3、4)線段的兩個(gè)端點(diǎn)均不在窗口內(nèi),但不處于窗口邊界線外同側(cè),這時(shí)有可能線段是部分可見(jiàn)的,也可能是完全不可見(jiàn)的。Cohen-Sutherland 裁剪算法就是按照上述思路來(lái)對(duì)線段進(jìn)行裁剪的,只是在線段的兩端點(diǎn)相對(duì)于矩形窗口的位置上,巧妙地運(yùn)用了編碼的思想。首先,延長(zhǎng)窗口的四條邊界線,將平面劃分成 9 個(gè)區(qū)域,然后,用四位二進(jìn)制數(shù)C3c2C1C0t這9個(gè)區(qū)域進(jìn)行編碼,編碼規(guī)則如下:第0位CG當(dāng)線段的端點(diǎn)在窗口的左邊界之左時(shí),該位編碼為1,否則,該位編碼為0。第1位C1:當(dāng)線段的端點(diǎn)在窗口的右邊界之右時(shí),該位編碼為1,否則,該位編碼為0。第2位C2:當(dāng)線段的端點(diǎn)在窗口的下邊界之下時(shí),該位編碼為1,否則
4、,該位編碼為0。第3位C3:當(dāng)線段的端點(diǎn)在窗口的上邊界之上時(shí),該位編碼為1,否則,該位編碼為0。于是算法步驟可描述如下:步驟1:根據(jù)上述編碼規(guī)則,對(duì)線段的兩個(gè)端點(diǎn)進(jìn)行編碼。步驟2:根據(jù)線段的兩端點(diǎn)編碼判斷線段相對(duì)于窗口的位置關(guān)系,從而決定對(duì)線段如何剪取。( 1)兩端點(diǎn)編碼全為0000 時(shí),說(shuō)明線段完全位于窗口內(nèi),是完全可見(jiàn)的, 于是顯示此線段。( 2)兩端點(diǎn)編碼逐位邏輯與不為0 時(shí),說(shuō)明線段的兩個(gè)端點(diǎn)位于窗口外同側(cè),即此線段完全位于窗口外,是完全不可見(jiàn)的,于是全部舍棄,不顯示此線段。( 3)兩端點(diǎn)編碼逐位邏輯與為0 時(shí),說(shuō)明此線段或者部分可見(jiàn),或者完全不可見(jiàn)。此時(shí)需要計(jì)算出線段與窗口某一邊界線
5、或邊界線的延長(zhǎng)線的交點(diǎn),若交點(diǎn)在窗口邊界線的延長(zhǎng)線上,則說(shuō)明該線段完全位于窗口外,不予以顯示;若交點(diǎn)在窗口邊界線上,則對(duì)以其中一個(gè)交點(diǎn)為分割點(diǎn)的兩端線段,再分別對(duì)其端點(diǎn)進(jìn)行編碼,并按照上述(1)和(2)所示的方法進(jìn)行測(cè)試,從而舍棄完全位于窗口外的一段線段,保留并顯示完全位于窗口內(nèi)的一段線段。三、實(shí)驗(yàn)代碼:Cohen-SutherLand 實(shí)現(xiàn)裁剪直線的兩個(gè)關(guān)鍵函數(shù)/ 計(jì)算點(diǎn) x,y 的編碼void CCohenSutherLandView:CompOutCode(float x,float y,CRect* rect,OutCode* outCode)outCode->all = 0;o
6、utCode->top = outCode->bottom =0;if (y < rect->top)outCode->top = 1;outCode->all += 1;else if (y > rect->bottom)續(xù)頁(yè)outCode->bottom = 1;outCode->all += 1;outCode->right = outCode->left = 0;if (x > rect->right)outCode->right = 1;outCode->all += 1;else if(
7、x < rect->left)outCode->left = 1;outCode->all += 1;/Cohen-SutherLand線段裁剪算法void CCohenSutherLandView:CohenSutherLineClip(CDC* pDC,float x0,float y0,float x1,float y1, CRect* rect)BOOL accept,done;OutCode outCode0,outCode1;OutCode *outCodeOut;float x,y;accept = FALSE;done = FALSE;CompOutCo
8、de(x0,y0,rect,&outCode0);CompOutCode(x1,y1,rect,&outCode1);doif (outCode0.all = 0 && outCode1.all = 0) /完全可見(jiàn)accept = TRUE;done = TRUE;else if (outCode0.all & outCode1.all) != 0) /顯然可見(jiàn)done = TRUE;else / 進(jìn)行求交測(cè)試if (outCode0.all != 0)outCodeOut = &outCode0;elseoutCodeOut = &o
9、utCode1;if (outCodeOut->left)y = y0 + (y1 - y0) * (rect->left - x0) / (x1 - x0); /線段與窗口左邊求交x = (float)rect->left;else if (outCodeOut->top)x = x0 + (x1 - x0) * (rect->right - y0) / (y1 - y0); /線段與窗口上邊求交y = (float) rect->top;else if (outCodeOut->right)y = y0 + (y1 - x0) * (rect-&g
10、t;right - x0) / (x1 - x0); /線段與窗口右邊求交x = (float)rect->right;else if (outCodeOut->bottom)x = x0 + (x1 - x0) * (rect->bottom - x0) / (y1 - y0); /線段與窗口下邊求交y = (float)rect->bottom;if (outCodeOut ->all = outCode0.all)x0 = x; /以交點(diǎn)為界,將線段位于窗口所在的直線的外側(cè)的部分丟棄y0 = y; /剩下的繼續(xù)CompOutCode(x0,y0,rect,&outCode0);elsex1 = x;y1 = y;CompOutCode(x1,y1,rect,&outCode1); while(!done);if (accept)pDC->MoveTo(int(x0),int(y0);pDC-&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省濟(jì)寧市(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)人教版課后作業(yè)(下學(xué)期)試卷及答案
- 廣東省深圳市龍華區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期第一次月考語(yǔ)文試卷
- 念奴嬌·赤壁懷古永遇樂(lè)·京口北固亭懷古課堂教學(xué)設(shè)計(jì) 蘇教版
- 教科版科學(xué)五年級(jí)上冊(cè) 第一單元《光》第3課光的傳播會(huì)遇到阻礙嗎 單元整體分析
- 2.3連乘、乘加、乘減(教學(xué)課件)五年級(jí)數(shù)學(xué)上冊(cè) 滬教版
- 打造友善班級(jí)杜絕校園欺凌
- 數(shù)學(xué)解題教案-代數(shù)方程
- 2023年春4月《憲法學(xué)》全國(guó)自考試題含解析
- 2022年秋季全國(guó)自考憲法學(xué)模擬考題含解析
- 2021年秋季高教自考《憲法學(xué)》試卷含解析
- 6《感官總動(dòng)員》教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)一年級(jí)上冊(cè)蘇教版
- 初中歷史跨學(xué)科教學(xué)活動(dòng)設(shè)計(jì)
- 2024新教科版一年級(jí)上冊(cè)第二單元我們自己第1課我們的身體教學(xué)課件含微課視頻
- 2025年中考道德與法治一輪復(fù)習(xí)核心知識(shí)點(diǎn)歸納
- 新人教版(2024版)七年級(jí)上學(xué)期數(shù)學(xué)第二章質(zhì)量高階檢測(cè)(附答案解析)
- 2024至2030年中國(guó)江蘇省鄉(xiāng)村旅游行業(yè)市場(chǎng)調(diào)研及投資戰(zhàn)略研究報(bào)告
- 2024年安徽省中考道德與法治試題卷(含標(biāo)準(zhǔn)答案及解析)
- 人教版六年級(jí)下冊(cè)音樂(lè)《感恩的心》說(shuō)課稿
- 2024年山東省青島市局屬公辦普通高中化學(xué)自招真題
- 糾正冤假錯(cuò)案申訴范文
- 電力工程施工行業(yè)分析報(bào)告
評(píng)論
0/150
提交評(píng)論