圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc

圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc

ID:59169915

大?。?18.00 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2020-10-30

圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc_第1頁(yè)
圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc_第2頁(yè)
圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc_第3頁(yè)
圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc_第4頁(yè)
圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc_第5頁(yè)
資源描述:

《圖形學(xué)實(shí)驗(yàn)報(bào)告顧佳烽.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、《計(jì)算機(jī)圖形學(xué)課內(nèi)實(shí)驗(yàn)》實(shí)驗(yàn)報(bào)告班級(jí):計(jì)算機(jī)22班姓名:顧佳烽學(xué)號(hào):日期:2014.11.08一、實(shí)驗(yàn)?zāi)康募耙罅私釵penGL圖形軟件包繪制圖形的基本過(guò)程及其程序框架,并在已有的程序框架中添加代碼實(shí)現(xiàn)直線和圓的生成算法,演示直線和圓的生成過(guò)程,從而加深對(duì)直線和圓等基本圖形生成算法的理解,本實(shí)驗(yàn)報(bào)告選擇DDA劃線算法作為主要內(nèi)容,DDA劃線算法是數(shù)字微分分析儀,是一種線段掃描轉(zhuǎn)換算法,基于首尾端點(diǎn)坐標(biāo)選擇一個(gè)坐標(biāo)軸,以一個(gè)單位間隔對(duì)線段取樣,從而確定一個(gè)坐標(biāo)軸上最靠近線路徑的對(duì)應(yīng)整數(shù)值,從而完整地較為

2、準(zhǔn)確地畫(huà)出線段。二.實(shí)驗(yàn)環(huán)境本次實(shí)驗(yàn)采用的是MicrosoftC++6.0軟件,所用的語(yǔ)言是C++。三、實(shí)驗(yàn)內(nèi)容對(duì)于書(shū)上給出的代碼,要求通過(guò)本次試驗(yàn)來(lái)具體的實(shí)現(xiàn)。由于實(shí)驗(yàn)已經(jīng)給出大體的框架,所以只需要按照書(shū)上的算法思想來(lái)設(shè)計(jì)具體實(shí)現(xiàn)代碼,DDA算法是對(duì)每一步都要進(jìn)行增量處理,然后取整,繪制。四、數(shù)據(jù)結(jié)構(gòu)和算法描述具體的算法很簡(jiǎn)潔,關(guān)鍵在于如何在坐標(biāo)軸上面實(shí)現(xiàn)動(dòng)態(tài)地繪制過(guò)程,具體地,先調(diào)用clear算法對(duì)屏幕進(jìn)行清屏,然后在Delayms函數(shù)中實(shí)現(xiàn)了動(dòng)態(tài)繪制的功能,并且可以按照需求更改繪制速度等,具體的

3、繪點(diǎn)函數(shù)是put函數(shù),然后在主函數(shù)run中實(shí)現(xiàn)了DDA的劃線功能。首尾端點(diǎn)坐標(biāo)分別為(x0,y0)和(xend,yend),計(jì)算橫向與縱向上面的差量,確定以哪一個(gè)坐標(biāo)軸方向?yàn)閱挝婚g隔取樣對(duì)象,依次確定另一個(gè)坐標(biāo)軸上最靠近線路經(jīng)的對(duì)應(yīng)整數(shù)值,從而確定下一個(gè)繪制的點(diǎn)。三、調(diào)試過(guò)程及實(shí)驗(yàn)結(jié)果在實(shí)驗(yàn)初期,無(wú)法完成坐標(biāo)軸和動(dòng)態(tài)繪制的功能,在同學(xué)的幫助下,添加了clear,put,Delayms等等函數(shù)來(lái)實(shí)現(xiàn)上述功能,調(diào)試過(guò)程中基本沒(méi)有遇到問(wèn)題,只有個(gè)別語(yǔ)法錯(cuò)誤需要糾正。實(shí)驗(yàn)結(jié)果截圖如下:六.總結(jié)通過(guò)本次試驗(yàn),我

4、進(jìn)一步加深了對(duì)于基本畫(huà)圖算法的理解。特別是對(duì)于DDA,Bresenham和畫(huà)圓以及畫(huà)橢圓算法。其中,DDA算法由于每一步都要處理浮點(diǎn)數(shù)的四舍五入,所以在繪圖時(shí)要進(jìn)行取整,效率較低,但是代碼直觀好懂,符合原理。而對(duì)于Bresenham及其改進(jìn)算法,都是在理論推導(dǎo)的基礎(chǔ)上來(lái)實(shí)現(xiàn)的,然后經(jīng)過(guò)整數(shù)化,形成了一個(gè)高效率的畫(huà)圖算法,所以需要適當(dāng)?shù)睦斫?,特別是對(duì)于取整操作判斷比較巧妙,實(shí)現(xiàn)了避免多次判斷計(jì)算浮點(diǎn)數(shù)的目的,所以比較高效。而繪制圓形的時(shí)候,用到的基本思想還是和Bresenham畫(huà)圖算法一樣,只不過(guò)需要注

5、意的是八分法畫(huà)圓,這樣只需要繪制其中的八分之一就可以利用對(duì)稱(chēng)的關(guān)系來(lái)繪制出整個(gè)圖形。而對(duì)于是否走下一步,或者是停留,判斷的依據(jù)還是誤差函數(shù),和前面的思想是類(lèi)似。橢圓的畫(huà)法和中點(diǎn)圓的畫(huà)法并無(wú)二致,只是需要畫(huà)出四分之一,無(wú)法像圓一樣8分之一。另外,通過(guò)實(shí)驗(yàn)訓(xùn)練了自己的編程能力和動(dòng)手實(shí)踐能力,同時(shí)熟悉了OpenGL繪圖的函數(shù)和流程,也進(jìn)一步鞏固了相關(guān)的知識(shí),對(duì)計(jì)算機(jī)圖形學(xué)這門(mén)課程產(chǎn)生了更加濃厚的興趣,也堅(jiān)定了要學(xué)好這門(mén)課程的信心。七.附錄(源程序清單)////////////////////////////

6、//////////////////////////////////////////////////實(shí)驗(yàn)要求:(1)理解glut程序框架//(2)理解窗口到視區(qū)的變換//(3)理解OpenGL實(shí)現(xiàn)動(dòng)畫(huà)的原理//(4)理解坐標(biāo)軸的基本原理和操作定義//(5)添加代碼實(shí)現(xiàn)DDA算法畫(huà)直線//////////////////////////////////////////////////////////////////////////////#defineEnableAxis//刪去此行則不畫(huà)坐標(biāo)軸#def

7、ineAxisScale100//設(shè)置坐標(biāo)軸刻度數(shù)字間隔,如果刪去這行就不畫(huà)數(shù)字刻度//////////////////////////////////////////////////////////////////////////#include#include#include#include#includeusingnamespacestd;////////////////////////////////////

8、//////////////////////////////////////#include#include#include//////////////////////////////////////////////////////////////////////////HDCmdc;HWNDhWnd;unsignedchar*canvas;intwidth,height,origin_

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

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

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