



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編碼裁剪算法一, 實(shí)驗(yàn)名稱:編碼裁剪算法二, 實(shí)驗(yàn)?zāi)康暮鸵饬x:窗口內(nèi)的圖形顯示,超出窗口邊框的圖形不予顯示。這個(gè)過程就是裁剪過程,它在圖形顯示及窗視口變換中經(jīng)常用到,對(duì)工程圖形進(jìn)行裁剪時(shí),編碼裁剪是一種有效的裁剪方法,通過該實(shí)驗(yàn),了解和掌握編碼裁剪的原理和方法。從而快速地處理顯示區(qū)內(nèi)的圖形。三, 實(shí)驗(yàn)原理;將繪圖所在平面分成九個(gè)區(qū)域,每個(gè)區(qū)域用一個(gè)四位的二進(jìn)制數(shù)來表示,0000、0001、0010、1001、1000、1010、0101、0100、0110,如果線段兩個(gè)端點(diǎn)的4位編碼全為0,表示線段全部在窗口內(nèi),可直接接受并加以顯示;如果對(duì)線段兩個(gè)端點(diǎn)的4位編碼進(jìn)行邏輯與運(yùn)算,結(jié)果為非0,則此
2、線段全部在窗口外,可直接舍棄加以裁減;否則,計(jì)算直線和窗口邊框線的交點(diǎn),再計(jì)算交點(diǎn)的特征碼;重復(fù)這一過程,直到全部線段均被裁減掉或接受為止。四, 實(shí)驗(yàn)內(nèi)容;算法改編成C語言程序,給定一窗口區(qū)域(50,50,200,100),隨機(jī)生成5條直線,對(duì)其進(jìn)行裁剪處理,將處理結(jié)果加以顯示。五, 算法步驟;給定一窗口區(qū)域。計(jì)算各區(qū)的特征碼。隨機(jī)給定一條直線的兩端上。計(jì)算兩端點(diǎn)對(duì)應(yīng)的特征碼。如果兩端點(diǎn)都在窗口內(nèi),直接顯示。如果有端點(diǎn)在窗口外,則判斷它和哪個(gè)邊框有交點(diǎn)。求出直線和對(duì)應(yīng)邊框線交點(diǎn)。在計(jì)算交點(diǎn)的特征碼,重復(fù)前面的。六, 程序代碼;/*說明;(x1,y1)和(x2,y2)為線段的兩個(gè)端點(diǎn)。*/#in
3、clude"graphics.h"#include"stdio.h"#include"math.h"#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8intx1=50,y1=50,x2=450,y2=350,xl=100,xr=400,yb=300,yt=100;int encode(int x,int y,int*code)int c;c=0;if(x<xl) c=LEFT;else if(x>xr) c=RIGHT;if(y>yb) c=BOTTO
4、M;else if(y<yt) c=TOP;if(x=xl|x=xr|y=yt|y=yb) c=0;*code=c;C_S_LINECLIP(x1,y1,x2,y2,xl,xr,yb,yt)/*(x1,y1)與()時(shí)線段端點(diǎn)坐標(biāo)其他四個(gè)參數(shù)分別定義為左,下,右,上邊界*/ int x,y,code1,code2,code; encode(x1,y1,&code1); encode(x2,y2,&code2); while(code1!=0|code2!=0) if(code1&code2!=0) return; code=code1; if(code1=0) co
5、de=code2; if(LEFT&code)!=0) /*線段與左邊界相交*/ x=x1; y=y1+(long)(y2-y1)*(xl-x1)/(x2-x1); else if(RIGHT&code)!=0) /*線段與右邊界相交*/ x=xr; y=y1+(long)(y2-y1)*(xr-x1/x2-x1); else if(BOTTOM&code)!=0) /*線段與上邊界相交*/ y=yb; x=x1+(long)(x2-x1)*(yb-y1)/(y2-y1); else if(TOP&code)!=0) /*線段與下邊界相交*/ y=yt; x=x1+(long)(x2-x1)*(yt-y1)/(y2-y1); if(code=code1) x1=x; y1=y; encode(x,y,&code1); else x2=x; y2=y; encode(x,y,&code2); setcolor(RED); line(x1,y1,x2,y2); return;void main() int graphdriver=DETECT,graphmode; initgraph(&graphdriver,&graphmode,""); rectangle(xl,yt,x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ī)療集團(tuán)用藥管理辦法
- 消費(fèi)者行為分析與教育方案設(shè)計(jì)
- 編碼安全評(píng)估方法-洞察及研究
- 廈門行政執(zhí)法管理辦法
- 任務(wù)驅(qū)動(dòng)活動(dòng)對(duì)素養(yǎng)提升的影響與策略
- 醫(yī)療通信安全管理辦法
- 學(xué)科交叉研究面臨的挑戰(zhàn)與解決路徑
- 國有企業(yè)中介服務(wù)機(jī)構(gòu)選聘流程與標(biāo)準(zhǔn)
- 農(nóng)業(yè)綜合資金管理辦法
- 城鄉(xiāng)融合:礦山生態(tài)修復(fù)規(guī)劃策略研究
- 2024年人類對(duì)外星生命的深入探索
- 造謠法律聲明書范本
- (完整word版)高中英語3500詞匯表
- 輸變電工程檔案管理歸檔要求
- SYB創(chuàng)業(yè)培訓(xùn)游戲模塊2課件
- 獸醫(yī)傳染病學(xué)(山東聯(lián)盟)智慧樹知到答案章節(jié)測(cè)試2023年青島農(nóng)業(yè)大學(xué)
- 腸系膜脈管系統(tǒng)腫瘤的診斷
- 爆破工程技考核試卷
- GB/T 35273-2020信息安全技術(shù)個(gè)人信息安全規(guī)范
- GB 18068-2000水泥廠衛(wèi)生防護(hù)距離標(biāo)準(zhǔn)
- 教師調(diào)動(dòng)登記表(模板)
評(píng)論
0/150
提交評(píng)論