計算機圖形學(xué)實驗四 :裁剪

計算機圖形學(xué)實驗四 :裁剪

ID:14389694

大小:78.39 KB

頁數(shù):10頁

時間:2018-07-28

計算機圖形學(xué)實驗四 :裁剪_第1頁
計算機圖形學(xué)實驗四 :裁剪_第2頁
計算機圖形學(xué)實驗四 :裁剪_第3頁
計算機圖形學(xué)實驗四 :裁剪_第4頁
計算機圖形學(xué)實驗四 :裁剪_第5頁
資源描述:

《計算機圖形學(xué)實驗四 :裁剪》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、貴州大學(xué)實驗報告學(xué)院:計算機科學(xué)與技術(shù)專業(yè):計算機科學(xué)與技術(shù)班級:計科131姓名學(xué)號實驗組實驗時間指導(dǎo)教師黃初華成績實驗項目名稱直線裁剪實驗?zāi)康囊弧嶒災(zāi)康恼莆粘S玫牟脺p及消隱算法:直線的裁剪實驗要求實現(xiàn)一個直線裁減算法對于設(shè)計性實驗,應(yīng)根據(jù)“由學(xué)生自行設(shè)計實驗方案并加以實現(xiàn)的實驗”內(nèi)涵要求,注意省略由學(xué)生自主設(shè)計的“實驗方案”.根據(jù)本實驗的特點、要求和具體條件,采用“以學(xué)生自主訓(xùn)練為主的開放模式組織教學(xué),還是采用集中授課形式”,須加以明確。實驗原理直線裁減Cohen-SutherLand算法(編碼算法)算法原理(遞歸的裁剪過程):對于每

2、條線段P1P2分為三種情況處理:(1)若P1P2完全在窗口內(nèi),則顯示該線段P1P2。(2)若P1P2明顯在窗口外,則丟棄該線段。(3)若線段不滿足(1)或(2)的條件,則在交點處把線段分為兩段。其中一段完全在窗口外,可棄之。然后對另一段重復(fù)上述處理。100100010101100000000100101000100110為快速判斷,采用如下編碼方法:由窗口四條邊所在直線把二維平面分成9個區(qū)域(右圖),每個區(qū)域賦予一個四位編碼:CtCbCrCl(上下右左);直線的端點都按其所處區(qū)域賦予相應(yīng)的區(qū)域碼,用來標識出端點相對于裁剪矩形邊界的位置。各

3、位編碼含義:-10-上:ify>ymax,Ct=1,else,0;下:ifyxmax,Cr=1,else,0;左:ifx

4、done表示是否完成,draw表示是否可見)Unsignedcharcode1,code2;端點1,端點2的編碼While(!done)beginif(判斷code1,code2,若為第1種情況)begindone=TRUE;draw=TRUE;endelseif(為第2種情況)begindone=TRUE;draw=FALSE;endelseif(檢查code1,若在窗口內(nèi))/*第3種情況*/begin交換端點及端點的編碼;以左,上,右,下的次序?qū)Χ它c1進行判斷及求交;將交點的值賦給端點1;endend算法分析:本算法的優(yōu)點在于簡單,易

5、于實現(xiàn)。用編碼方法可快速判斷線段的完全可見和顯然不可見,他可以簡單的描述為將直線在窗口左邊的部分刪去,按左,右,下,上的順序依次進行,處理之后,剩余部分就是可見的了。在這個算法中求交點是很重要的,他決定了算法的速度。本算法對于其他形狀的窗口是否同樣有效就值得討論了,這也證明了在圖形算法中,沒有幾個是對大多數(shù)情況有效的。-10-特別適用二種情形:大窗口場合;窗口特別小場合(光標拾取圖形,光標看作小的裁剪窗口)。Cohen-Sutherland與中點法在區(qū)域碼測試階段能以位運算方式高效率地進行,因而當大多數(shù)線段能夠簡單的取舍時,效率較好。實驗

6、環(huán)境五、實驗條件:硬件平臺:PC軟件(推薦):Windows平臺,Visualstdio2013,opengl實驗步驟六、實驗步驟1.掌握算法原理;2.依據(jù)算法,編寫源程序并進行調(diào)試;3.對運行結(jié)果進行保存與分析;4.把源程序以文件的形式提交;5.按格式書寫實驗報告。實驗內(nèi)容#include"stdafx.h"#include#include#include#pragmacomment(lib,"opengl32.lib")#pragmacomment(lib,"glu32.lib")

7、#pragmacomment(lib,"glut32.lib")#defineLEFT_EDGE1#defineRIGHT_EDGE2#defineBOTTOM_EDGE4#defineTOP_EDGE8staticinttimes=1;//畫從(x0,y0)到(x1,y1)的直線voidLineGL(intx0,inty0,intx1,inty1){glBegin(GL_LINES);glColor3f(1.0f,0.0f,0.0f);glVertex2f(x0,y0);-10-glColor3f(0.0f,1.0f,0.0f);glV

8、ertex2f(x1,y1);glEnd();}//矩形的結(jié)構(gòu)體typedefstructRectangle{floatxmin;floatxmax;floatymin;floatymax;}

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。