計算機圖形學實驗及課程設計_第1頁
計算機圖形學實驗及課程設計_第2頁
計算機圖形學實驗及課程設計_第3頁
計算機圖形學實驗及課程設計_第4頁
計算機圖形學實驗及課程設計_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機圖形學實驗及課程設計計算機圖形學實驗及課程設計孔令德孔令德2012年春于太原年春于太原實驗任務書實驗任務書 實驗目的實驗目的:鞏固學生對計算機圖形學的直線掃描轉換原理、有效邊表填充原理、三維透視投影原理、ZBuffer深度緩沖消隱原理和真實感圖形生成原理的理解,增加學生對真實感圖形生成算法的感性認識,強化訓練學生使用Visual C+的MFC編寫相關圖形類的技能。 此前,課堂上已經(jīng)完成計算機圖形學實踐教程(Visual C+版)的43個驗證性實驗的講解,在此基礎上,要求學生能綜合使用全部教學內容完成綜合性實驗。 實驗要求實驗要求:要求學生在實驗前了解綜合性實驗的目的和要求,觀察實驗效果圖

2、。在實驗中認真理解每個類的結構,通過搭積木的方式完成實驗任務。實驗結束后按要求整理相關類的源程序,撰寫實驗報告,尤其需要對難點和重點進行詳細說明。一、實驗目的與要求一、實驗目的與要求實驗任務書實驗任務書 學時:教學總學時48,其中實驗學時8。二、實驗項目與提要二、實驗項目與提要實驗任務書實驗任務書 三、成績考核方法三、成績考核方法 本實驗與計算機圖形學課程同步開設,成績占期末總成績的20%40%。四、本課程與其他課程的聯(lián)系和分工四、本課程與其他課程的聯(lián)系和分工 先修課程:高等數(shù)學、線性代數(shù)、MFC程序設計、數(shù)據(jù)結構。實驗實驗1 1 繪制金剛石圖案繪制金剛石圖案1.1 實驗目的實驗目的掌握二維坐

3、標系模式映射方法。掌握動態(tài)內存的分配和釋放方法。掌握二維點類的定義方法。掌握對話框的創(chuàng)建及調用方法。掌握對話框的數(shù)據(jù)交換和數(shù)據(jù)校驗方法。掌握Test工程實驗框架的創(chuàng)建方法。掌握金剛石圖案的設計方法。實驗實驗1 1 繪制金剛石圖案繪制金剛石圖案1.2 實驗要求實驗要求定義二維坐標系原點位于屏幕中心,x軸水平向右為正,y軸鉛直向上為正。以二維坐標系原點為圓心繪制半徑為r的圓,將圓的n等分點使用直線彼此連接形成金剛石圖案。程序運行界面提供“文件”、“繪圖”和“幫助”三個彈出菜單項。“文件”菜單提供“退出”子菜單項,用于退出應用程序;“繪圖”菜單提供“金剛石”子菜單項,用于繪制金剛石圖案;“幫助”菜單

4、提供“關于”子菜單項,用于說明開發(fā)信息。選擇“金剛石”子菜單項,打開“輸入?yún)?shù)”對話框,輸入“等分點個數(shù)”和“圓的半徑”。在屏幕客戶區(qū)中心繪制金剛石圖案。實驗實驗1 1 繪制金剛石圖案繪制金剛石圖案1.3 效果圖效果圖 將半徑為300的圓,劃分30個等分點后,得到的金剛石圖案實驗效果如圖1-1所示。圖1-1金剛石圖案效果圖實驗實驗2 2 繪制任意斜率的直線段繪制任意斜率的直線段 2.1實驗目的實驗目的 掌握任意斜率直線段的中點Bresenham掃描轉換算法。 掌握CLine直線類的設計方法。 掌握狀態(tài)欄編程方法。 實驗實驗2 2 繪制任意斜率的直線段繪制任意斜率的直線段2.2 實驗要求實驗要求

5、設計CLine直線類,其數(shù)據(jù)成員為直線段的起點坐標P0和終點坐標P1,成員函數(shù)為MoveTo()和LineTo()函數(shù)。CLine類的LineTo()函數(shù)使用中點Bresenham算法繪制任意斜率k的直線段,包括k、k1、0k1、-1k0和k-1五種情況。在屏幕客戶區(qū)按下鼠標左鍵選擇直線的起點,保持鼠標左鍵按下并移動鼠標到另一位置,彈起鼠標左鍵繪制任意斜率的直線段。在狀態(tài)欄動態(tài)顯示鼠標光標移動時的位置坐標。實驗實驗 2 2 繪制任意斜率的直線段繪制任意斜率的直線段2.3 效果圖效果圖 任意斜率的直線段繪制效果如圖2-1所示。圖2-1 任意效率直線段繪制效果圖實驗實驗3 3 交互式繪制多邊形交互

6、式繪制多邊形 3.1實驗目的實驗目的掌握雙緩沖繪圖技術。掌握人機交互技術。掌握填充動態(tài)多邊形的有效邊表算法。 實驗實驗3 3 交互式繪制多邊形交互式繪制多邊形3.2 實驗要求實驗要求使用鼠標在屏幕客戶區(qū)繪制任意點數(shù)的多邊形。要求使用橡皮筋技術動態(tài)繪制每條邊;鼠標移動過程中按下Shift鍵時可繪制垂直邊或水平邊;將多邊形的終點移動到多邊形的起點時自動封閉多邊形;在繪制多邊形的過程中,狀態(tài)欄動態(tài)顯示鼠標光標的位置坐標。當開始繪制多邊形時,更改鼠標光標為十字光標,多邊形繪制完畢后恢復為箭頭光標。多邊形閉合后自動調用有效邊表算法填充多邊形內部區(qū)域。實驗實驗3 3 交互式繪制多邊形交互式繪制多邊形3.3

7、 效果圖效果圖 交互式繪制多邊形效果如圖3-1所示。圖3-1 交互式繪制的多邊形效果圖實驗實驗4 4 二維幾何變換二維幾何變換 4.1實驗目的實驗目的掌握二維平移、比例、旋轉幾何變換矩陣。掌握矩陣乘法的編程實現(xiàn)。掌握相對于任一參考點的比例變換和旋轉變換。掌握定時器的使用方法。掌握邊界碰撞檢測方法。掌握靜態(tài)切分視圖框架的設計方法。實驗實驗4 4 二維幾何變換二維幾何變換4.2 實驗要求實驗要求使用靜態(tài)切分視圖,將窗口分為左右窗格。左窗格為繼承于CFormView類的表單視圖類CLeftPortion,右窗格為一般視圖類CTestView。左窗格提供代表“圖形頂點數(shù)”(4、8、16和32)、“平移

8、變換”(x方向和y方向)、“旋轉變換”(逆時針和順時針)和“比例變換”(放大和縮?。┑幕瑒訔l,用于控制右窗格內的圖形變化。右窗格內以屏幕客戶區(qū)中心為圖形的幾何中心,繪制圖形頂點數(shù)從4變化為8、16和32的正多邊形。為了表達圖形的旋轉,多邊形的每個頂點和圖形中心使用直線連接。實驗實驗4 4 二維幾何變換二維幾何變換4.2 實驗要求實驗要求使用雙緩沖技術控制圖形在右窗格內的無閃爍運動。設定屏幕背景色為黑色,圖形顏色為白色。使用客戶區(qū)邊界檢測技術,改變圖形在右窗格內和客戶區(qū)邊界碰撞后的運動方向。實驗實驗4 4 二維幾何變換二維幾何變換4.3 效果圖效果圖 二維幾何變換效果如圖4-1所示。圖4-1 二

9、維幾何變換效果圖 實驗實驗5 5 直線段裁剪直線段裁剪 5.1實驗目的實驗目的掌握直線段端點編碼方法。掌握Cohen-Sutherland直線段裁剪算法。實驗實驗5 5 直線段裁剪直線段裁剪5.2 實驗要求實驗要求定義二維坐標系原點位于屏幕中心,x軸水平向右為正,y軸鉛直向上為正。在客戶區(qū)中央固定繪制顏色為RGB(128,0,0)的3像素寬的矩形代表裁剪窗口。裁剪窗口的左上角點為(-300,100),右下角點為(300,-100)。使用鼠標在屏幕上動態(tài)繪制任意直線段。選擇裁剪按鈕根據(jù)直線段和窗口的相對位置,對直線段進行裁剪,得到位于窗口內的直線段,刪除窗口外的直線段。直線段繪制之前,裁剪按鈕無

10、效;直線段繪制之后,裁剪按鈕有效。實驗實驗5 5 直線段裁剪直線段裁剪5.3 效果圖效果圖 直線段裁剪前效果如圖5-1所示,直線段裁剪后效果如圖5-2所示。圖5-1 直線段裁剪前效果圖 圖5-2 直線段裁剪后效果圖 實驗實驗6 6立方體線框模型正交投影立方體線框模型正交投影 6.1實驗目的實驗目的掌握使用點表和面表構造立方體線框模型的方法。掌握立方體線框模型二維正交投影圖的繪制方法。掌握立方體線框模型二維正交投影圖的旋轉方法。實驗實驗6 6立方體線框模型正交投影立方體線框模型正交投影6.2 實驗要求實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。

11、以三維坐標系Oxyz的原點為立方體體心繪制邊長為a的立方體線框模型。使用旋轉變換矩陣計算立方體線框模型圍繞三維坐標系原點變換前后的頂點坐標。使用雙緩沖技術在屏幕上繪制三維立方體線框模型的二維正交投影圖。使用鍵盤方向鍵旋轉立方體線框模型。使用工具條上的“動畫”按鈕播放立方體線框模型的旋轉動畫。實驗實驗6 6立方體線框模型正交投影立方體線框模型正交投影6.3 效果圖效果圖 立方體線框模型正交投影效果如圖6-1所示。圖6-1 立方體線框模型正交投影效果圖實驗實驗7 7立方體線框模型透視投影立方體線框模型透視投影 7.1實驗目的實驗目的掌握使用點表和面表構造立方體線框模型的方法。掌握視點球坐標的計算方

12、法。掌握立方體線框模型的二維透視投影圖的繪制方法。掌握立方體線框模型的二維透視投影圖的旋轉方法。實驗實驗7 7立方體線框模型透視投影立方體線框模型透視投影7.2 實驗要求實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。以三維坐標系Oxyz的原點為立方體體心繪制邊長為a的立方體線框模型。使用雙緩沖技術在屏幕上繪制三維立方體的二維透視投影圖。使用鍵盤方向鍵旋轉立方體線框模型。使用工具條上的“動畫”圖標播放立方體線框模型的旋轉動畫。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。實驗實驗7 7立方體線框模型透視投影立方體線框模型透視投影7.3 效果圖效

13、果圖 立方體線框模型透視投影效果如圖7-1所示。圖7-1 立方體線框模型透視投影效果圖實驗實驗8 8 動態(tài)三視圖動態(tài)三視圖 8.1實驗目的實驗目的掌握主視圖變換矩陣。掌握俯視圖變換矩陣。掌握側視圖變換矩陣。掌握斜等測圖繪制方法。實驗實驗8 8 動態(tài)三視圖動態(tài)三視圖8.2 實驗要求實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。將屏幕靜態(tài)切分為4個窗格。左上窗格繪制主視圖、左下窗格繪制俯視圖、右上窗格繪制側視圖,右下窗格繪制斜等測消隱線框模型。使用正交投影繪制主視圖、俯視圖和側視圖,使用斜等測投影繪制多面體線框模型。使用鍵盤方向鍵旋轉右下窗格多面體

14、斜等測線框模型,其余三個窗格內的視圖隨之動態(tài)改變。使用工具條上的動畫按鈕播放所繪制物體的斜等測線框模型及三視圖的旋轉動畫。實驗實驗8 8 動態(tài)三視圖動態(tài)三視圖8.3 效果圖效果圖 多面體動態(tài)三視圖的效果如圖8-1所示。圖8-1 多面體動態(tài)三視圖的效果圖實驗實驗9 9 動態(tài)繪制動態(tài)繪制BezierBezier曲線曲線 9.1實驗目的實驗目的掌握直線的參數(shù)表示法。掌握德卡斯特里奧算法的幾何意義。掌握繪制二維Bezier曲線的方法。實驗實驗9 9 動態(tài)繪制動態(tài)繪制BezierBezier曲線曲線9.2 實驗要求實驗要求使用鼠標左鍵繪制個數(shù)為10以內的任意控制點,使用直線連接構成控制多邊形。單擊鼠標右

15、鍵繪制Bezier曲線。在狀態(tài)欄顯示鼠標的位置坐標。Bezier曲線使用德卡斯特里奧(de Casteliau)算法繪制。實驗實驗9 9 動態(tài)繪制動態(tài)繪制BezierBezier曲線曲線9.3 效果圖效果圖 動態(tài)繪制Bezier曲線效果如圖9-1所示。圖9-1 動態(tài)繪制Bezier曲線效果圖實驗實驗10 10 交互式三次交互式三次B B樣條曲線樣條曲線 10.1 實驗目的實驗目的掌握三次B樣條曲線的基函數(shù)。掌握分段三次B樣條曲線的繪制方法。掌握三次B樣條曲線的特殊構造技巧。掌握圖形頂點可視化移動技巧。實驗實驗10 10 交互式三次交互式三次B B樣條曲線樣條曲線10.2 實驗要求實驗要求給定9

16、個控制點:P0 (104,330),P1= (204,231),P2= (286,362),P3= (363,145),P4= (472,527),P5= (548,228),P6= (662,40),P7= (830,450),P8= (930,350)。繪制三次B樣條曲線。移動鼠標光標到控制點上,光標變?yōu)槭中?,顯示其坐標信息。拖動控制點,曲線形狀隨之發(fā)生改變,驗證三次B樣條曲線的特殊構造技巧。實驗實驗10 10 交互式三次交互式三次B B樣條曲線樣條曲線10.3 效果圖效果圖 三次B樣條曲線效果如圖10-1所示。 圖10-1 三次B樣條曲線效果圖實驗實驗11 11 旋轉的旋轉的KochKo

17、ch雪花雪花 11.1 實驗目的實驗目的掌握Koch雪花的構圖方法。掌握遞歸模型的實現(xiàn)算法。實驗實驗11 11 旋轉的旋轉的KochKoch雪花雪花11.2 實驗要求實驗要求建立平面二維坐標系,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正。以原點為圓心繪制半徑為r的圓,與y軸交于P0點。從P0點開始,順時針方向將圓三等分,得到P1和P2點。P0P1P2構成等邊三角形,如圖11-1所示。沿著等邊三角形的三條邊外側分別繪制三段遞歸深度為4,夾角為60的Koch曲線,形成Koch雪花,如圖11-2所示。實驗實驗11 11 旋轉的旋轉的KochKoch雪花雪花11.2 實驗要求實驗要求設

18、置背景色為黑色,Koch雪花為白色,代表雪花中心點的十字線以藍色繪制。設置動畫按鈕,控制Koch雪花圍繞坐標系原點順時針旋轉。實驗實驗11 11 旋轉的旋轉的KochKoch雪花雪花11.3 效果圖效果圖 旋轉的Koch雪花繪制效果如圖11-3所示 。 圖11-3 旋轉的Koch雪花效果圖實驗實驗12 12 顏色漸變立方體顏色漸變立方體 12.1 實驗目的實驗目的掌握凸多面體消隱算法。掌握雙線性顏色插值算法。建立基本三維場景。實驗實驗12 12 顏色漸變立方體顏色漸變立方體12.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏

19、幕指向觀察者。以原點為體心繪制透視投影立方體,立方體8個頂點的顏色分別為黑色、白色、紅色、綠色、藍色、黃色、品紅色和青色。背景色為黑色,如圖12-1所示。實驗實驗12 12 顏色漸變立方體顏色漸變立方體12.2 實驗要求實驗要求使用凸多面體消隱算法消隱,只繪制立方體的可見表面。立方體的每個可見表面的內點根據(jù)4個頂點的顏色進行漸變填充。使用鼠標左鍵縮小立方體,使用鼠標右鍵放大立方體,使用鍵盤方向鍵旋轉立方體。設置動畫按鈕,播放或停止立方體動畫。實驗實驗12 12 顏色漸變立方體顏色漸變立方體12.3 效果圖效果圖 顏色漸變立方體繪制效果如圖12-2所示。 圖12-2 顏色漸變立方體效果圖實驗實驗

20、13 13 地理劃分線框球地理劃分線框球 13.1 實驗目的實驗目的掌握球體地理劃分法。實驗實驗13 13 地理劃分線框球地理劃分線框球13.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。球體中心位于坐標系原點,使用地理劃分法繪制球體線框模型。使用點表和面表構造球體數(shù)據(jù)文件使用凸多面體消隱算法對球體線框模型進行消隱。使用鍵盤方向鍵旋轉球體。使用動畫按鈕,播放或停止球體動畫。 實驗實驗13 13 地理劃分線框球地理劃分線框球13.3 效果圖效果圖 使用地理劃分法繪制的線框球體效果如圖13-1所示。 圖13-1 地

21、理劃分線框球效果圖 實驗實驗14 14 交叉條消隱交叉條消隱 14.1 實驗目的實驗目的掌握深度緩沖消隱算法。掌握深度排序消隱算法。實驗實驗14 14 交叉條消隱交叉條消隱14.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。在原點的上、下、左、右位置繪制4個矩形條,每個條各使用一種顏色表示,上條為紅色、下條為黃色、左條為綠色、右條為藍色。屏幕背景色為黑色。如果4個條彼此交叉,即上條的左端深度高于右端深度,下條的左端深度低于右端深度,左條的上端深度低于下端深度,右條的上端深度高于下端深度時,使用深度緩沖算法消隱。

22、如果4個條彼此平行,4個條的深度值彼此不同,但每個條上四個頂點具有統(tǒng)一的深度值,使用深度排序算法消隱。實驗實驗14 14 交叉條消隱交叉條消隱14.2 實驗要求實驗要求在工具條上設置控制按鈕,當按鈕彈起時啟用深度緩沖,按鈕按下時禁用深度緩沖。當啟用深度緩沖消隱算法時,繪制4個交叉條。當禁用深度緩沖消隱算法時,按每個條深度排序結果從小到大,繪制4個疊加條。實驗實驗14 14 交叉條消隱交叉條消隱14.3 效果圖效果圖 啟用深度緩沖繪制的交叉條效果如圖14-1所示,禁用深度緩沖繪制的交叉條效果如圖14-2所示。 圖14-1 啟用深度緩沖效果圖 圖14-2 禁用深度緩沖效果圖 實驗實驗15 15 立

23、方體光照模型立方體光照模型 15.1 實驗目的實驗目的掌握光源數(shù)量的設置方法。掌握光源位置的設置方法。掌握光源顏色的設置方法。掌握物體材質的設置方法。掌握光源的開啟與關閉。建立簡單光照三維場景。實驗實驗15 15 立方體光照模型立方體光照模型15.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制立方體的表面透視消隱模型,立方體體心和三維坐標系中心重合。使用點光源對立方體進行照射,改變光源的顏色和物體的材質,演示二者的交互作用效果。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。使用鍵盤方向鍵旋轉立方體。使用動

24、畫按鈕,播放或停止立方體動畫。實驗實驗15 15 立方體光照模型立方體光照模型15.3 效果圖效果圖 立方體光照模型繪制效果如圖15-1所示。 圖15-1 立方體光照模型效果圖 實驗實驗16 16 球體球體GouraudGouraud光照模型光照模型 16.1 實驗目的實驗目的掌握雙線性光強插值模型。實驗實驗16 16 球體球體GouraudGouraud光照模型光照模型16.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制體心和坐標系中心重合的球體表面,使用ZBuffer消隱算法進行消隱。使用單點光源對球體

25、進行照射生成Gouraud光照模型,光源位置位于球體右上方。背景色設置為RGB(128,0,0)。使用鍵盤方向鍵旋轉球體。使用動畫按鈕,播放或停止球體動畫。實驗實驗16 16 球體球體GouraudGouraud光照模型光照模型16.3 效果圖效果圖 球體單光源Gouraud光照模型繪制效果如圖16-1所示。 圖16-1 球體單點光源Gouraud光照模型效果圖 實驗實驗17 17 球體球體PhongPhong光照模型光照模型 17.1 實驗目的實驗目的掌握雙線性法矢插值模型。實驗實驗17 17 球體球體PhongPhong光照模型光照模型17.2 實驗要求實驗要求建立三維坐標系Oxyz,原點

26、位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制體心和坐標系中心重合的球體表面,使用ZBuffer消隱算法進行消隱。使用單點光源對球體進行照射生成Phong光照模型,光源位置位于球體右上方。背景色設置為RGB(128,0,0)。使用鍵盤方向鍵旋轉球體。使用動畫按鈕,播放或停止球體動畫。實驗實驗17 17 球體球體PhongPhong光照模型光照模型17.3 效果圖效果圖 球體Phong光照模型繪制效果如圖17-1所示。 圖17-1 球體Phong光照模型效果圖 實驗實驗18 18 立方體紋理映射立方體紋理映射 18.1 實驗目的實驗目的掌握位圖紋理讀入方法

27、。掌握立方體紋理映射算法。實驗實驗18 18 立方體紋理映射立方體紋理映射18.2 實驗要求實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。設置屏幕背景色為黑色。讀入6張構成天空盒的位圖作為紋理映射到立方體的可見表面上。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。使用鍵盤方向鍵旋轉紋理立方體。使用動畫按鈕,播放或停止立方體動畫。實驗實驗18 18 立方體紋理映射立方體紋理映射實驗實驗18 18 立方體紋理映射立方體紋理映射18.3 效果圖效果圖 天空盒效果如圖18-2所示。 圖18-2 天空盒效果圖 課程設計任務書課程設

28、計任務書 一、課程設計目的一、課程設計目的培養(yǎng)對圖形建模、變換、投影、消隱、光照原理的理解和應用。培養(yǎng)圖形類的編程能力。培養(yǎng)計算機圖形學應用軟件開發(fā)的能力。課程設計任務書課程設計任務書 二、課程設計要求二、課程設計要求 深入研究計算機圖形學的生成原理,設計算法實現(xiàn)具體的類。1.構建基礎類構建基礎類 實現(xiàn)CP2類繪制二維點;實現(xiàn)CP3類繪制三維點;實現(xiàn)CRGB類處理RGB顏色;實現(xiàn)CVector類處理矢量。2.構建直線類構建直線類 實現(xiàn)CLine類繪制任意斜率的直線、實現(xiàn)CALine類繪制任意斜率的反走樣直線、實現(xiàn)CCLine類繪制任意斜率的顏色漸變直線、實現(xiàn)CACLine類繪制任意斜率的反走樣

29、顏色漸變直線。課程設計任務書課程設計任務書 3.構建變換類構建變換類 實現(xiàn)CTransForm完成二維和三維圖形變換。4.構建填充類構建填充類 實現(xiàn)CFill類使用有效邊表算法填充多邊形、實現(xiàn)CZBuffer類進行深度緩沖消隱,并使用Gouraud和Phong明暗處理填充圖形面片。5.構建光照類構建光照類 實現(xiàn)CLight類設置點光源、實現(xiàn)CMaterial類設置物體材質、實現(xiàn)CLighting類對物體實施光照。 通過課程設計項目的設計、開發(fā)、測試、總結和驗收各階段,深入理解計算機圖形學課程中的理論和算法,學習計算機圖形學相關類的編程技巧,初步掌握游戲開發(fā)的前期技能。課程設計任務書課程設計任務

30、書 三、開發(fā)環(huán)境三、開發(fā)環(huán)境 Viusal C+ 6.0的MFC框架。四、課程設計時間四、課程設計時間 一周。五、課程設計方式五、課程設計方式 任選一個題目完成課程設計??蛇x題目為:基本圖元光柵掃描演示系統(tǒng)、遞歸動態(tài)球體演示系統(tǒng)、圓環(huán)動態(tài)紋理演示系統(tǒng)、動態(tài)光源演示系統(tǒng)和3DS接口演示系統(tǒng)。 考慮到完整的開發(fā)過程一般需要付出很多的時間,因此可選擇如下的完成方式: (1) 獨立方式(1人),要求完成“基本圖元光柵掃描演示系統(tǒng)”和“動態(tài)光源演示系統(tǒng)”的全部基本內容。 (2)小組方式(3人),要求完成“遞歸動態(tài)球體演示系統(tǒng)”、“圓環(huán)動態(tài)紋理演示系統(tǒng)”和“3DS接口演示系統(tǒng)”的全部基本內容,并對每人完成

31、的內容作具體分工,合作完成。 課程設計任務書課程設計任務書 六、報告格式六、報告格式 課程設計報告由封面、需求分析、總體設計、詳細設計、源程序、程序運行效果圖、參考文獻組成。封面包括課程設計題目、學號、姓名、指導教師姓名和完成時間;需求分析包括項目的功能要求;總體設計給出類的結構;詳細設計給出算法流程圖;源程序給出主要模塊的頭文件和源文件;運行效果圖給出程序的動態(tài)效果圖;參考文獻給出課程設計中引用的文獻,并在報告中使用角標給出引文出處。七、評分標準七、評分標準 課程設計成績根據(jù)提交的課程設計報告以及軟件系統(tǒng)的驗收成績進行綜合評定,分為優(yōu),良,中,及格,不及格5個等級。要求在完成具體課程設計項目

32、所要求功能的同時注重課程設計的創(chuàng)新性。 完成課程設計項目所要求的功能 及格 設計了新類且類結構清晰 中或良好 在課程設計項目的基礎上,創(chuàng)新性地添加了新的內容 優(yōu)秀基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng)1.1 設計目標設計目標圖形的繪制實質上是像素的操作,像素有三個參數(shù),位置坐標x、y以及顏色c。本設計使用正方形模擬像素,保持屏幕的縱橫比為4:3,將基本圖元(直線、圓和橢圓)在像素級別上繪制出來。由于圓是橢圓的特例,即長軸和短軸長度相等的橢圓,可以使用鍵盤的約束來解決。本設計要求在像素級別演示直線的走樣、反走樣和顏色漸變;演示橢圓(含圓)的走樣和反走樣。詳細功能要求如下: 基本圖元光柵

33、掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng)1.1 設計目標設計目標使用靜態(tài)切分視圖,將屏幕切分為左右窗格。左窗格是控制窗格,右窗格為顯示窗格。保持右窗格的二維設備坐標系不變,原點位于客戶區(qū)左上角,x軸水平向右為正,y軸鉛直向下為正。在右窗格內繪制4030個正方形代表虛擬像素網(wǎng)格,使用橡皮筋技術動態(tài)演示基本圖元的繪制過程。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng)1.1 設計目標設計目標在左窗格內借助快捷顏色按鈕選擇直線的起點和終點顏色,或雙擊“起點”或“終點”顏色按鈕彈出系統(tǒng)顏色對話框,從中選擇直線的起點和終點顏色。在右窗格選擇直線段的起點像素和終點像素位置,分別繪制走樣直線、反走樣直線、顏

34、色漸變直線。要求:在移動鼠標的過程中時,按下Shift鍵可繪制水平或垂直直線。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng)1.1 設計目標設計目標在左窗格選擇橢圓(含圓)的線條顏色,在右窗格內選擇兩個像素作為橢圓(包含圓)的外接矩形的左上角點和右下角點,分別繪制走樣橢圓(含圓)、反走樣橢圓(包含圓)。要求:在移動鼠標的過程中,按下Shift鍵可以繪制圓。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng)1.1 設計目標設計目標在狀態(tài)欄動態(tài)顯示鼠標在右窗格內的虛擬像素坐標,虛擬像素的坐標取為虛擬像素網(wǎng)格的中心點坐標,需要從設備坐標系轉換到虛擬像素坐標系,即右窗格網(wǎng)格左上角點的虛擬像素坐標為

35、(0,0),網(wǎng)格右下角點的虛擬像素坐標為(39,29)。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng) 1.2 設計效果設計效果單擊左窗格的“直線”按鈕后,在右窗格內使用鼠標繪制的走樣直線,如圖-1所示。單擊左窗格的“直線”按鈕,同時選中“反走樣”復選框后,在右窗格內使用鼠標繪制的反走樣直線如圖-2所示。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng) 1.2 設計效果設計效果單擊左窗格的“直線”按鈕,同時為直線選擇了起點和終點顏色后,在右窗格內使用鼠標繪制的顏色漸變直線如圖-3所示。單擊左窗格的“直線”按鈕,為直線選擇了起點和終點顏色后,同時選中“反走樣”復選框,在右窗格內使用鼠標繪制

36、的顏色漸變反走樣直線如圖-4所示。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng) 1.2 設計效果設計效果單擊左窗格的“橢圓”按鈕后,在右窗格內使用鼠標繪制的走樣橢圓如圖-5所示。單擊左窗格的“橢圓”按鈕同時選中“反走樣”復選框后,在右窗格內繪制的反走樣橢圓如圖-6所示。 基本圖元光柵掃描演示系統(tǒng)基本圖元光柵掃描演示系統(tǒng) 1.2 設計效果設計效果單擊左窗格的“橢圓”按鈕后,在右窗格內拖動鼠標的同時按下Shift鍵繪制的走樣圓如圖-7所示。單擊左窗格的“橢圓”按鈕同時選中“反走樣”復選框后,在右窗格內拖動鼠標的同時按下Shift鍵繪制的反走樣圓如圖-8所示。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體

37、演示系統(tǒng) 2.1 設計目標設計目標 在正八面體的基礎上構建球體。正八面體的頂點位于球面上,正八面體的體心設為球心。將正八面體每個正三角形表面的三條邊的中點連接形成四個小正三角形,并將三個中點拉伸到球面上。對每個小正三角形進行同樣的遞歸操作可以構造出球體線框模型。請使用不同深度的遞歸劃分法分別繪制無光照線框球,有光照線框球、無光照表面球和有光照表面球。給定沿x,y,z坐標軸3個方向的位移量和繞x,y,z坐標軸的旋轉角度,控制球體在窗口客戶區(qū)內運動。當球體和客戶區(qū)邊界發(fā)生碰撞后,改變運動方向。請使用三維正交變換繪制遞歸動態(tài)球體。詳細功能要求如下: 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.1

38、設計目標設計目標使用靜態(tài)切分視圖,將窗口切分為左右窗格。左窗格為繼承于CForemView類的表單視圖類CLeftPortion,右窗格為一般視圖類CTestView。右窗格的三維坐標系原點位于客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正, z軸垂直于屏幕指向觀察者。左窗格放置代表“球體控制”、“模型分類”、“光源開關”、“平移變換”和“旋轉變換”4個組框控件?!扒蝮w控制”組框提供“球體半徑”和“球面級數(shù)”2個滑動條;“模型分類”組框提供“線框”和“表面”2個單選按鈕;“光源開關”分類組框提供“關”和“開”2個單選按鈕;“平移變換”組框提供“X方向”、“Y方向”和“Z方向”3個滑動條;“旋轉

39、變換”組框提供“繞X軸”、“繞Y軸”和“繞Z軸”3個滑動條。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.1 設計目標設計目標球體在右窗格內根據(jù)左窗格的設定值運動,并和客戶區(qū)邊界發(fā)生碰撞。當球面級數(shù)的值為8時,右窗格內的球體退化為正八面體。當球面級數(shù)的值為32時,在右窗格內的正八面體的每個等邊三角形的三條邊上取3個中點并用直線連接,形成4個小正三角形。將3個中點的模長擴展至球體半徑長度,得到遞歸球體。當球面級數(shù)增加時,對每個小正三角形面片繼續(xù)進行同樣的遞歸,最終生成遞歸球體。根據(jù)左窗格的參數(shù)值,分別繪制無光照和有光照消隱線框球、無光照和有光照表面球。其中無光照消隱線框采用走樣直線繪制,顏色為

40、白色;有光照消隱線框球采用反走樣顏色漸變直線繪制;光照表面球使用Gouraud雙線性光強插值模型繪制,無光照球體表面填充為白色。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“線框”后,“光照開關”為“關”,“球面級數(shù)”為0,當前球體面片數(shù)為8,右窗格內繪制的初始消隱正八面體線框模型效果如圖-1所示。在左窗格的“模型分類”組框內選擇“線框”后,“光照開關”為“關”,“球面級數(shù)”為1,當前球體面片數(shù)為32,右窗格內繪制的消隱遞歸球體線框模型效果如圖-2所示。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.2 設計效果設計效果在左窗格的“模型分

41、類”組框內選擇“線框”后,“光照開關”為“關”,“球面級數(shù)”為2,當前球體面片數(shù)為128,右窗格內繪制的消隱遞歸球體線框模型效果如圖-3所示。在左窗格的“模型分類”組框內選擇“線框”后,“光照開關”為“關”,“球面級數(shù)”為3,當前球體面片數(shù)為512,右窗格內繪制的消隱遞歸球體線框模型效果如圖-4所示。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“線框”后,“光照開關”為“關”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內繪制的消隱遞歸球體線框模型效果如圖-5所示。在左窗格的“模型分類”組框內選擇“線框”后,“光照開關”為“開”,“

42、球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內繪制的消隱遞歸球體光照線框模型效果如圖-6所示。 遞歸動態(tài)球體演示系統(tǒng)遞歸動態(tài)球體演示系統(tǒng) 2.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“表面”后,光照開關為“關”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內繪制的消隱遞歸球體無光照表面模型效果如圖-7所示。在左窗格的“模型分類”組框內選擇“表面”后,光照開關為“開”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內繪制的消隱遞歸球體光照表面模型效果如圖-8所示。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.1 設計目標設計目標 設定光源和視點都位于z軸正向。在三維坐

43、標系中,以原點為圓環(huán)中心,繪制動態(tài)旋轉的無光照和有光照的圓環(huán)線框模型、圓環(huán)表面模型和圓環(huán)紋理模型。選擇不同的紋理位圖,動態(tài)添加到圓環(huán)上。詳細功能要求如下:使用靜態(tài)切分視圖,將窗口切分為左右窗格。左窗格為繼承于CFormView類的表單視圖類CLeftPortion,右窗格為一般視圖類CTestView。右窗格的三維坐標系原點位于客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正, z軸垂直于屏幕指向觀察者。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.1 設計目標設計目標左窗格放置代表“圓環(huán)控制”、“模型分類”、“光源開關”、“明暗處理”、“紋理映射”的5個組框控件?!皥A環(huán)控制”組框提供“環(huán)體半

44、徑”、“截面半徑”、“表面級數(shù)”和“截面級數(shù)”4個滑動條;“模型分類”組框提供“線框”、“表面”和“紋理”3個單選按鈕;“光源開關”組框提供“關”和“開”兩個單選按鈕;“明暗處理”組框提供“Gouraud”和“Phong”2個單選按鈕;“紋理映射”組框提供1個“選擇紋理”按鈕和1個顯示紋理縮略圖的Picture靜態(tài)控件,“選擇紋理”按鈕調用“打開文件”通用對話框,可以選擇如圖-1所示的3張不同的bmp位圖對圓環(huán)進行紋理映射。默認情況下,“模型分類”組框內選擇的是“線框”,“光源開關”選擇的是“開”,同時禁用“明暗處理”組框和“紋理映射”組框。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.1

45、設計目標設計目標 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.1 設計目標設計目標圓環(huán)在右窗格內以客戶區(qū)中心為體心繞x軸轉動。根據(jù)左窗格設置的參數(shù)值,分別繪制無光照和有光照的反走樣線框模型、無光照和有光照的Gouraud或Phong插值表面模型,無光照和有光照的Phong插值紋理模型。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“線框”后,“光源開關”組框內選擇“關”,右窗格內繪制的無光照消隱圓環(huán)線框模型,如圖-2所示。在左窗格的“模型分類”組框內選擇“線框”后,“光源開關”組框內選擇“開”,右窗格內繪制的光照消隱圓環(huán)線框模型,如圖-3

46、所示。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“表面”后,“光源開關”組框內選擇“開”,“明暗處理”組框內選擇“Gouraud”,右窗格內繪制的光照消隱圓環(huán)表面模型,如圖-4所示。在左窗格的“模型分類”組框內選擇“表面”后,“光源開關”組框內選擇“開”,“明暗處理”組框內選擇“Phong”,右窗格內繪制的光照消隱圓環(huán)表面模型,如圖-5所示。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“紋理”后,“光源開關”組框內選擇“關”,“明暗處理”組框內默認為“Phong”,右窗格內繪制的無

47、光照紋理映射圓環(huán)模型,如圖-6所示。在左窗格的“模型分類”組框內選擇“紋理”后,“光源開關”組框內選擇“開”,“明暗處理”組框內默認為“Phong”,右窗格內繪制默認貼圖為-1(a)的紋理映射圓環(huán)模型,如圖-7所示。 圓環(huán)動態(tài)紋理演示系統(tǒng)圓環(huán)動態(tài)紋理演示系統(tǒng) 3.2 設計效果設計效果在左窗格的“模型分類”組框內選擇“紋理”后,“光源開關”組框內選擇“開”,“明暗處理”組框內默認為“Phong”,通過“紋理映射”組框內的“選擇紋理”按鈕更換紋理位圖為圖-1(a)或(c)后,右窗格內繪制的紋理映射圓環(huán)模型,如圖-8和-9所示。 動態(tài)光源演示系統(tǒng)動態(tài)光源演示系統(tǒng) 4.1 設計目標設計目標 在窗口客戶區(qū)中心繪制三維球體表面模型,材質為灰色。圍繞球體設置紅綠藍三個光源。紅綠藍光源分別在xoy面、yoz面和zox面內沿不同的橢圓軌道環(huán)繞三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論