《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書PAGEPAGE24《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)指導(dǎo)書1計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)指導(dǎo)書袁科計(jì)算機(jī)技術(shù)實(shí)驗(yàn)中心目錄TOC\o"1-2"\h\z\u實(shí)驗(yàn)一實(shí)現(xiàn)DDA、中點(diǎn)畫線算法和Bresenham畫線算法 24實(shí)驗(yàn)二實(shí)現(xiàn)Bezier曲線 25實(shí)驗(yàn)三實(shí)現(xiàn)B樣條曲線 26實(shí)驗(yàn)四實(shí)現(xiàn)多邊形填充的邊界標(biāo)志算法 27實(shí)驗(yàn)五實(shí)現(xiàn)裁剪多邊形的Cohen-Sutherland算法 28實(shí)驗(yàn)六二維圖形的基本幾何變換 30實(shí)驗(yàn)七畫圖軟件的編制 31

實(shí)驗(yàn)一實(shí)現(xiàn)DDA、中點(diǎn)畫線算法和Bresenham畫線算法【實(shí)驗(yàn)?zāi)康摹?、掌握直線的多種生成算法;2、掌握二維圖形顯示原理?!緦?shí)驗(yàn)環(huán)境】VC++6.0/BC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】驗(yàn)證性實(shí)驗(yàn),2學(xué)時(shí),必做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】利用任意的一個(gè)實(shí)驗(yàn)環(huán)境,編制源程序,分別實(shí)現(xiàn)直線的三種生成算法,即數(shù)字微分法(DDA)、中點(diǎn)畫線法以及Bresenham畫線算法?!緦?shí)驗(yàn)原理】數(shù)字微分法(DigitalDifferentialAnalyzer,DDA)算法思想:基于直線的微分方程來(lái)生成直線。ε=1/max(|△x|,|△y|)max(|△x|,|△y|)=|△x|,即|k|≤1的情況:max(|△x|,|△y|)=|△y|,此時(shí)|k|≥1:中點(diǎn)畫線法算法思想:每次在最大位移方向上走一步,另一方向是否走步取決于誤差項(xiàng)的判斷。3、Bresenham畫線算法算法思想:其基本思想同中點(diǎn)算法一樣,即每次在最大位移方向上走一步,而另一個(gè)方向是否走步取決于誤差項(xiàng)的判斷?!緦?shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析【分析與思考】(1)上述所闡述的三個(gè)算法,其基本算法只能適用于直線的斜率(|K|<=1)的情形,如何將上述算法進(jìn)行推廣,使其能夠處理任意斜率的直線?(2)計(jì)算機(jī)顯示屏幕的坐標(biāo)圓心在哪里,與我們平時(shí)的習(xí)慣有什么差異,如何協(xié)調(diào)二者?

實(shí)驗(yàn)二實(shí)現(xiàn)Bezier曲線【實(shí)驗(yàn)?zāi)康摹?、掌握Bezier曲線的定義;2、能編程實(shí)現(xiàn)N次Bezier曲線的繪制與顯示?!緦?shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】驗(yàn)證性實(shí)驗(yàn),2學(xué)時(shí),必做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編程實(shí)現(xiàn)N次Brezier曲線的繪制?!緦?shí)驗(yàn)原理】Bezier曲線的定義:P(t)=t∈[0,1]=tk(1-t)n-k=Ckntk(1-t)n-kk=0,1,2,3,……,n【實(shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析實(shí)驗(yàn)三實(shí)現(xiàn)B樣條曲線【實(shí)驗(yàn)?zāi)康摹?、掌握B樣條曲線的定義;2、能編程實(shí)現(xiàn)B樣條曲線的繪制與顯示?!緦?shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】驗(yàn)證性實(shí)驗(yàn),2學(xué)時(shí),選做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編程實(shí)現(xiàn)B樣條曲線的繪制和顯示?!緦?shí)驗(yàn)原理】B樣條曲線的定義:C(u)=是調(diào)和函數(shù),也稱為基函數(shù),按照遞歸公式可以定義為:=1若ti≤u≤ti+10其他=+(tk≤u≤tn+1)【實(shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析實(shí)驗(yàn)四實(shí)現(xiàn)多邊形填充的邊界標(biāo)志算法【實(shí)驗(yàn)?zāi)康摹?、掌握多邊形填充的基本原理;2、掌握邊界標(biāo)志算法來(lái)實(shí)現(xiàn)多邊形填充的思想。【實(shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】2學(xué)時(shí),選做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編制程序,完成一個(gè)多邊形區(qū)域的填充過程,能夠完整的展示邊界標(biāo)志算法填充的全過程?!緦?shí)驗(yàn)原理】邊界標(biāo)志算法填充算法的偽程序如下:#defineFALSE0edge_mark_fill(polydef,color)多邊形定義polydef;intcolor;{對(duì)多邊形polydef每條邊進(jìn)行直線掃描轉(zhuǎn)換;inside=FALSE;for(每條與多邊形polydef相交的掃描線y)for(掃描線上每個(gè)像素x){if(像素x被打上邊標(biāo)志)inside=!(inside);if(inside!=FALSE)drawpixel(x,y,color);elsedrawpixel(x,y,background);}}【實(shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析實(shí)驗(yàn)五實(shí)現(xiàn)裁剪多邊形的Cohen-Sutherland算法【實(shí)驗(yàn)?zāi)康摹?、掌握多邊形裁剪的基本原理;2、掌握Cohen-Sutherland算法來(lái)實(shí)現(xiàn)多邊形裁減的思想?!緦?shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】驗(yàn)證性實(shí)驗(yàn),2學(xué)時(shí),選做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編制程序,利用Cohen-Sutherland算法完成一個(gè)多邊形的裁減過程?!緦?shí)驗(yàn)原理】1.算法基本思想對(duì)每條直線段p1(x1,y1)p2(x2,y2)分三種情況處理:(1)直線段完全可見,“簡(jiǎn)取”之。(2)直線段完全不可見,“簡(jiǎn)棄”之。(3)直線段既不滿足“簡(jiǎn)取”的條件,也不滿足“簡(jiǎn)棄”的條件,需要對(duì)直線段按交點(diǎn)進(jìn)行分段,分段后重復(fù)上述處理。2.算法步驟(1)編碼對(duì)于任一端點(diǎn)(x,y),賦予一個(gè)4位的二進(jìn)制碼D3D2D1D0。編碼規(guī)則如下:若x<wxl,則D0=1,否則D0=0;若x>wxr,則D1=1,否則D1=0;若y<wyb,則D2=1,否則D2=0;若y>wyt,則D3=1,否則D3=0。(2)裁剪先求出端點(diǎn)p1和p2的編碼code1和code2,然后:若code1|code2=0,對(duì)直線段應(yīng)簡(jiǎn)取之。若code1&code2≠0,對(duì)直線段可簡(jiǎn)棄之。若上述兩條件均不成立。則需求出直線段與窗口邊界的交點(diǎn)。在交點(diǎn)處把線段一分為二,其中必有一段完全在窗口外,可以棄之。再對(duì)另一段重復(fù)進(jìn)行上述處理,直到該線段完全被舍棄或者找到位于窗口內(nèi)的一段線段為止。(3)求交假定直線的端點(diǎn)坐標(biāo)為(x1,y1)和(x2,y2)左、右邊界交點(diǎn)的計(jì)算上、下邊界交點(diǎn)的計(jì)算。3.算法實(shí)現(xiàn)(1)輸入直線段的兩端點(diǎn)坐標(biāo):p1(x1,y1)、p2(x2,y2),以及窗口的四條邊界坐標(biāo):wyt、wyb、wxl和wxr。(2)對(duì)p1、p2進(jìn)行編碼:點(diǎn)p1的編碼為code1,點(diǎn)p2的編碼為code2。(3)若code1|code2=0,對(duì)直線段應(yīng)簡(jiǎn)取之,轉(zhuǎn)(6);否則,若code1&code2≠0,對(duì)直線段可簡(jiǎn)棄之,轉(zhuǎn)(7);當(dāng)上述兩條均不滿足時(shí),進(jìn)行步驟(4)。(4)確保p1在窗口外部:若p1在窗口內(nèi),則交換p1和p2的坐標(biāo)值和編碼。(5)按左、右、上、下的順序求出直線段與窗口邊界的交點(diǎn),并用該交點(diǎn)的坐標(biāo)值替換p1的坐標(biāo)值。也即在交點(diǎn)s處把線段一分為二,并去掉p1s這一段??紤]到p1是窗口外的一點(diǎn),因此可以去掉p1s。轉(zhuǎn)(2)。(6)用直線掃描轉(zhuǎn)換算法畫出當(dāng)前的直線段p1p2。(7)算法結(jié)束。【實(shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析實(shí)驗(yàn)六二維圖形的基本幾何變換【實(shí)驗(yàn)?zāi)康摹?、掌握二維圖形基本的幾何變換原理及變換矩陣;2、掌握矩陣運(yùn)算的程序設(shè)計(jì)。【實(shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】驗(yàn)證性實(shí)驗(yàn),2學(xué)時(shí),選做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】實(shí)現(xiàn)二維圖形的基本變換,包括平移、旋轉(zhuǎn)、比例、對(duì)稱變換。【實(shí)驗(yàn)原理】二維圖形齊次坐標(biāo)變換矩陣一般表達(dá)式:T2D=這3×3矩陣中各個(gè)元素功能一共可以分成四塊,即:其中是對(duì)圖形進(jìn)行縮放、旋轉(zhuǎn)、對(duì)稱、錯(cuò)切等變換;[cf]是對(duì)圖形進(jìn)行平移;對(duì)圖形作投影變換;g的作用是在x軸的1/g處產(chǎn)生一個(gè)滅點(diǎn),h的作用是在y軸的1/h處產(chǎn)生一個(gè)滅點(diǎn);[i]是對(duì)整體圖形作伸縮變換。【實(shí)驗(yàn)要求】1.上交源程序;2.上交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告內(nèi)容如下:(1)實(shí)驗(yàn)名稱(2)實(shí)驗(yàn)?zāi)康?3)算法實(shí)現(xiàn)的設(shè)計(jì)方法及程序流程圖(4)程序結(jié)果分析實(shí)驗(yàn)七畫圖軟件的編制【實(shí)驗(yàn)?zāi)康摹?、綜合應(yīng)用計(jì)算機(jī)圖形學(xué)的基本知識(shí)和原理;2、初步掌握利用高級(jí)語(yǔ)言來(lái)開發(fā)設(shè)計(jì)圖形軟件的能力?!緦?shí)驗(yàn)環(huán)境】VC++6.0/TurboC【實(shí)驗(yàn)性質(zhì)及學(xué)時(shí)】綜合性實(shí)驗(yàn),4學(xué)時(shí),必做實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編制程序,完成一個(gè)小型的圖形處

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論