版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
計算機圖形學實驗及課程設計孔令德2012年春于太原實驗任務書
實驗目的:鞏固學生對計算機圖形學的直線掃描轉(zhuǎn)換原理、有效邊表填充原理、三維透視投影原理、ZBuffer深度緩沖消隱原理和真實感圖形生成原理的理解,增加學生對真實感圖形生成算法的感性認識,強化訓練學生使用VisualC++的MFC編寫相關(guān)圖形類的技能。此前,課堂上已經(jīng)完成《計算機圖形學實踐教程(VisualC++版)》的43個驗證性實驗的講解,在此基礎上,要求學生能綜合使用全部教學內(nèi)容完成綜合性實驗。
實驗要求:要求學生在實驗前了解綜合性實驗的目的和要求,觀察實驗效果圖。在實驗中認真理解每個類的結(jié)構(gòu),通過搭積木的方式完成實驗任務。實驗結(jié)束后按要求整理相關(guān)類的源程序,撰寫實驗報告,尤其需要對難點和重點進行詳細說明。一、實驗目的與要求實驗任務書
學時:教學總學時48,其中實驗學時8。二、實驗項目與提要實驗任務書
三、成績考核方法
本實驗與計算機圖形學課程同步開設,成績占期末總成績的20%~40%。四、本課程與其他課程的聯(lián)系和分工先修課程:高等數(shù)學、線性代數(shù)、MFC程序設計、數(shù)據(jù)結(jié)構(gòu)。實驗1繪制金剛石圖案1.1實驗目的掌握二維坐標系模式映射方法。掌握動態(tài)內(nèi)存的分配和釋放方法。掌握二維點類的定義方法。掌握對話框的創(chuàng)建及調(diào)用方法。掌握對話框的數(shù)據(jù)交換和數(shù)據(jù)校驗方法。掌握Test工程實驗框架的創(chuàng)建方法。掌握金剛石圖案的設計方法。實驗1繪制金剛石圖案1.2實驗要求定義二維坐標系原點位于屏幕中心,x軸水平向右為正,y軸鉛直向上為正。以二維坐標系原點為圓心繪制半徑為r的圓,將圓的n等分點使用直線彼此連接形成金剛石圖案。程序運行界面提供“文件”、“繪圖”和“幫助”三個彈出菜單項。“文件”菜單提供“退出”子菜單項,用于退出應用程序;“繪圖”菜單提供“金剛石”子菜單項,用于繪制金剛石圖案;“幫助”菜單提供“關(guān)于”子菜單項,用于說明開發(fā)信息。選擇“金剛石”子菜單項,打開“輸入?yún)?shù)”對話框,輸入“等分點個數(shù)”和“圓的半徑”。在屏幕客戶區(qū)中心繪制金剛石圖案。實驗1繪制金剛石圖案1.3效果圖
將半徑為300的圓,劃分30個等分點后,得到的金剛石圖案實驗效果如圖1-1所示。圖1-1金剛石圖案效果圖實驗2繪制任意斜率的直線段
2.1實驗目的掌握任意斜率直線段的中點Bresenham掃描轉(zhuǎn)換算法。掌握CLine直線類的設計方法。掌握狀態(tài)欄編程方法。
實驗2繪制任意斜率的直線段2.2實驗要求設計CLine直線類,其數(shù)據(jù)成員為直線段的起點坐標P0和終點坐標P1,成員函數(shù)為MoveTo()和LineTo()函數(shù)。CLine類的LineTo()函數(shù)使用中點Bresenham算法繪制任意斜率k的直線段,包括k=±∞、k>1、0≤k≤1、-1≤k<0和k<-1五種情況。在屏幕客戶區(qū)按下鼠標左鍵選擇直線的起點,保持鼠標左鍵按下并移動鼠標到另一位置,彈起鼠標左鍵繪制任意斜率的直線段。在狀態(tài)欄動態(tài)顯示鼠標光標移動時的位置坐標。實驗2繪制任意斜率的直線段2.3效果圖任意斜率的直線段繪制效果如圖2-1所示。圖2-1任意效率直線段繪制效果圖實驗3交互式繪制多邊形
3.1實驗目的掌握雙緩沖繪圖技術(shù)。掌握人機交互技術(shù)。掌握填充動態(tài)多邊形的有效邊表算法。實驗3交互式繪制多邊形3.2實驗要求使用鼠標在屏幕客戶區(qū)繪制任意點數(shù)的多邊形。要求使用橡皮筋技術(shù)動態(tài)繪制每條邊;鼠標移動過程中按下Shift鍵時可繪制垂直邊或水平邊;將多邊形的終點移動到多邊形的起點時自動封閉多邊形;在繪制多邊形的過程中,狀態(tài)欄動態(tài)顯示鼠標光標的位置坐標。當開始繪制多邊形時,更改鼠標光標為十字光標,多邊形繪制完畢后恢復為箭頭光標。多邊形閉合后自動調(diào)用有效邊表算法填充多邊形內(nèi)部區(qū)域。實驗3交互式繪制多邊形3.3效果圖交互式繪制多邊形效果如圖3-1所示。圖3-1交互式繪制的多邊形效果圖實驗4二維幾何變換
4.1實驗目的掌握二維平移、比例、旋轉(zhuǎn)幾何變換矩陣。掌握矩陣乘法的編程實現(xiàn)。掌握相對于任一參考點的比例變換和旋轉(zhuǎn)變換。掌握定時器的使用方法。掌握邊界碰撞檢測方法。掌握靜態(tài)切分視圖框架的設計方法。實驗4二維幾何變換4.2實驗要求使用靜態(tài)切分視圖,將窗口分為左右窗格。左窗格為繼承于CFormView類的表單視圖類CLeftPortion,右窗格為一般視圖類CTestView。左窗格提供代表“圖形頂點數(shù)”(4、8、16和32)、“平移變換”(x方向和y方向)、“旋轉(zhuǎn)變換”(逆時針和順時針)和“比例變換”(放大和縮?。┑幕瑒訔l,用于控制右窗格內(nèi)的圖形變化。右窗格內(nèi)以屏幕客戶區(qū)中心為圖形的幾何中心,繪制圖形頂點數(shù)從4變化為8、16和32的正多邊形。為了表達圖形的旋轉(zhuǎn),多邊形的每個頂點和圖形中心使用直線連接。實驗4二維幾何變換4.2實驗要求使用雙緩沖技術(shù)控制圖形在右窗格內(nèi)的無閃爍運動。設定屏幕背景色為黑色,圖形顏色為白色。使用客戶區(qū)邊界檢測技術(shù),改變圖形在右窗格內(nèi)和客戶區(qū)邊界碰撞后的運動方向。實驗4二維幾何變換4.3效果圖二維幾何變換效果如圖4-1所示。圖4-1二維幾何變換效果圖
實驗5直線段裁剪
5.1實驗目的掌握直線段端點編碼方法。掌握Cohen-Sutherland直線段裁剪算法。實驗5直線段裁剪5.2實驗要求定義二維坐標系原點位于屏幕中心,x軸水平向右為正,y軸鉛直向上為正。在客戶區(qū)中央固定繪制顏色為RGB(128,0,0)的3像素寬的矩形代表裁剪窗口。裁剪窗口的左上角點為(-300,100),右下角點為(300,-100)。使用鼠標在屏幕上動態(tài)繪制任意直線段。選擇裁剪按鈕根據(jù)直線段和窗口的相對位置,對直線段進行裁剪,得到位于窗口內(nèi)的直線段,刪除窗口外的直線段。直線段繪制之前,裁剪按鈕無效;直線段繪制之后,裁剪按鈕有效。實驗5直線段裁剪5.3效果圖直線段裁剪前效果如圖5-1所示,直線段裁剪后效果如圖5-2所示。圖5-1直線段裁剪前效果圖圖5-2直線段裁剪后效果圖
實驗6立方體線框模型正交投影
6.1實驗目的掌握使用點表和面表構(gòu)造立方體線框模型的方法。掌握立方體線框模型二維正交投影圖的繪制方法。掌握立方體線框模型二維正交投影圖的旋轉(zhuǎn)方法。實驗6立方體線框模型正交投影6.2實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。以三維坐標系Oxyz的原點為立方體體心繪制邊長為a的立方體線框模型。使用旋轉(zhuǎn)變換矩陣計算立方體線框模型圍繞三維坐標系原點變換前后的頂點坐標。使用雙緩沖技術(shù)在屏幕上繪制三維立方體線框模型的二維正交投影圖。使用鍵盤方向鍵旋轉(zhuǎn)立方體線框模型。使用工具條上的“動畫”按鈕播放立方體線框模型的旋轉(zhuǎn)動畫。實驗6立方體線框模型正交投影6.3效果圖立方體線框模型正交投影效果如圖6-1所示。圖6-1立方體線框模型正交投影效果圖實驗7立方體線框模型透視投影
7.1實驗目的掌握使用點表和面表構(gòu)造立方體線框模型的方法。掌握視點球坐標的計算方法。掌握立方體線框模型的二維透視投影圖的繪制方法。掌握立方體線框模型的二維透視投影圖的旋轉(zhuǎn)方法。實驗7立方體線框模型透視投影7.2實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。以三維坐標系Oxyz的原點為立方體體心繪制邊長為a的立方體線框模型。使用雙緩沖技術(shù)在屏幕上繪制三維立方體的二維透視投影圖。使用鍵盤方向鍵旋轉(zhuǎn)立方體線框模型。使用工具條上的“動畫”圖標播放立方體線框模型的旋轉(zhuǎn)動畫。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。實驗7立方體線框模型透視投影7.3效果圖立方體線框模型透視投影效果如圖7-1所示。圖7-1立方體線框模型透視投影效果圖實驗8動態(tài)三視圖
8.1實驗目的掌握主視圖變換矩陣。掌握俯視圖變換矩陣。掌握側(cè)視圖變換矩陣。掌握斜等測圖繪制方法。實驗8動態(tài)三視圖8.2實驗要求在屏幕中心建立三維坐標系Oxyz,x軸水平向右,y軸鉛直向上,z軸垂直于屏幕指向觀察者。將屏幕靜態(tài)切分為4個窗格。左上窗格繪制主視圖、左下窗格繪制俯視圖、右上窗格繪制側(cè)視圖,右下窗格繪制斜等測消隱線框模型。使用正交投影繪制主視圖、俯視圖和側(cè)視圖,使用斜等測投影繪制多面體線框模型。使用鍵盤方向鍵旋轉(zhuǎn)右下窗格多面體斜等測線框模型,其余三個窗格內(nèi)的視圖隨之動態(tài)改變。使用工具條上的動畫按鈕播放所繪制物體的斜等測線框模型及三視圖的旋轉(zhuǎn)動畫。實驗8動態(tài)三視圖8.3效果圖多面體動態(tài)三視圖的效果如圖8-1所示。圖8-1多面體動態(tài)三視圖的效果圖實驗9動態(tài)繪制Bezier曲線
9.1實驗目的掌握直線的參數(shù)表示法。掌握德卡斯特里奧算法的幾何意義。掌握繪制二維Bezier曲線的方法。實驗9動態(tài)繪制Bezier曲線9.2實驗要求使用鼠標左鍵繪制個數(shù)為10以內(nèi)的任意控制點,使用直線連接構(gòu)成控制多邊形。單擊鼠標右鍵繪制Bezier曲線。在狀態(tài)欄顯示鼠標的位置坐標。Bezier曲線使用德卡斯特里奧(deCasteliau)算法繪制。實驗9動態(tài)繪制Bezier曲線9.3效果圖動態(tài)繪制Bezier曲線效果如圖9-1所示。圖9-1動態(tài)繪制Bezier曲線效果圖實驗10交互式三次B樣條曲線
10.1實驗目的掌握三次B樣條曲線的基函數(shù)。掌握分段三次B樣條曲線的繪制方法。掌握三次B樣條曲線的特殊構(gòu)造技巧。掌握圖形頂點可視化移動技巧。實驗10交互式三次B樣條曲線10.2實驗要求給定9個控制點: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樣條曲線的特殊構(gòu)造技巧。實驗10交互式三次B樣條曲線10.3效果圖三次B樣條曲線效果如圖10-1所示。圖10-1三次B樣條曲線效果圖實驗11旋轉(zhuǎn)的Koch雪花
11.1實驗目的掌握Koch雪花的構(gòu)圖方法。掌握遞歸模型的實現(xiàn)算法。實驗11旋轉(zhuǎn)的Koch雪花11.2實驗要求建立平面二維坐標系,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正。以原點為圓心繪制半徑為r的圓,與y軸交于P0點。從P0點開始,順時針方向?qū)A三等分,得到P1和P2點。P0P1P2構(gòu)成等邊三角形,如圖11-1所示。沿著等邊三角形的三條邊外側(cè)分別繪制三段遞歸深度為4,夾角為60°的Koch曲線,形成Koch雪花,如圖11-2所示。實驗11旋轉(zhuǎn)的Koch雪花11.2實驗要求設置背景色為黑色,Koch雪花為白色,代表雪花中心點的十字線以藍色繪制。設置動畫按鈕,控制Koch雪花圍繞坐標系原點順時針旋轉(zhuǎn)。實驗11旋轉(zhuǎn)的Koch雪花11.3效果圖旋轉(zhuǎn)的Koch雪花繪制效果如圖11-3所示。圖11-3旋轉(zhuǎn)的Koch雪花效果圖實驗12顏色漸變立方體
12.1實驗目的掌握凸多面體消隱算法。掌握雙線性顏色插值算法。建立基本三維場景。實驗12顏色漸變立方體12.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。以原點為體心繪制透視投影立方體,立方體8個頂點的顏色分別為黑色、白色、紅色、綠色、藍色、黃色、品紅色和青色。背景色為黑色,如圖12-1所示。實驗12顏色漸變立方體12.2實驗要求使用凸多面體消隱算法消隱,只繪制立方體的可見表面。立方體的每個可見表面的內(nèi)點根據(jù)4個頂點的顏色進行漸變填充。使用鼠標左鍵縮小立方體,使用鼠標右鍵放大立方體,使用鍵盤方向鍵旋轉(zhuǎn)立方體。設置動畫按鈕,播放或停止立方體動畫。實驗12顏色漸變立方體12.3效果圖顏色漸變立方體繪制效果如圖12-2所示。圖12-2顏色漸變立方體效果圖實驗13地理劃分線框球
13.1實驗目的掌握球體地理劃分法。實驗13地理劃分線框球13.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。球體中心位于坐標系原點,使用地理劃分法繪制球體線框模型。使用點表和面表構(gòu)造球體數(shù)據(jù)文件使用凸多面體消隱算法對球體線框模型進行消隱。使用鍵盤方向鍵旋轉(zhuǎn)球體。使用動畫按鈕,播放或停止球體動畫。實驗13地理劃分線框球13.3效果圖使用地理劃分法繪制的線框球體效果如圖13-1所示。
圖13-1地理劃分線框球效果圖
實驗14交叉條消隱
14.1實驗目的掌握深度緩沖消隱算法。掌握深度排序消隱算法。實驗14交叉條消隱14.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。在原點的上、下、左、右位置繪制4個矩形條,每個條各使用一種顏色表示,上條為紅色、下條為黃色、左條為綠色、右條為藍色。屏幕背景色為黑色。如果4個條彼此交叉,即上條的左端深度高于右端深度,下條的左端深度低于右端深度,左條的上端深度低于下端深度,右條的上端深度高于下端深度時,使用深度緩沖算法消隱。如果4個條彼此平行,4個條的深度值彼此不同,但每個條上四個頂點具有統(tǒng)一的深度值,使用深度排序算法消隱。實驗14交叉條消隱14.2實驗要求在工具條上設置控制按鈕,當按鈕彈起時啟用深度緩沖,按鈕按下時禁用深度緩沖。當啟用深度緩沖消隱算法時,繪制4個交叉條。當禁用深度緩沖消隱算法時,按每個條深度排序結(jié)果從小到大,繪制4個疊加條。實驗14交叉條消隱14.3效果圖啟用深度緩沖繪制的交叉條效果如圖14-1所示,禁用深度緩沖繪制的交叉條效果如圖14-2所示。圖14-1啟用深度緩沖效果圖
圖14-2禁用深度緩沖效果圖
實驗15立方體光照模型
15.1實驗目的掌握光源數(shù)量的設置方法。掌握光源位置的設置方法。掌握光源顏色的設置方法。掌握物體材質(zhì)的設置方法。掌握光源的開啟與關(guān)閉。建立簡單光照三維場景。實驗15立方體光照模型15.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制立方體的表面透視消隱模型,立方體體心和三維坐標系中心重合。使用點光源對立方體進行照射,改變光源的顏色和物體的材質(zhì),演示二者的交互作用效果。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。使用鍵盤方向鍵旋轉(zhuǎn)立方體。使用動畫按鈕,播放或停止立方體動畫。實驗15立方體光照模型15.3效果圖立方體光照模型繪制效果如圖15-1所示。圖15-1立方體光照模型效果圖
實驗16球體Gouraud光照模型
16.1實驗目的掌握雙線性光強插值模型。實驗16球體Gouraud光照模型16.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制體心和坐標系中心重合的球體表面,使用ZBuffer消隱算法進行消隱。使用單點光源對球體進行照射生成Gouraud光照模型,光源位置位于球體右上方。背景色設置為RGB(128,0,0)。使用鍵盤方向鍵旋轉(zhuǎn)球體。使用動畫按鈕,播放或停止球體動畫。實驗16球體Gouraud光照模型16.3效果圖球體單光源Gouraud光照模型繪制效果如圖16-1所示。圖16-1球體單點光源Gouraud光照模型效果圖
實驗17球體Phong光照模型
17.1實驗目的掌握雙線性法矢插值模型。實驗17球體Phong光照模型17.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。繪制體心和坐標系中心重合的球體表面,使用ZBuffer消隱算法進行消隱。使用單點光源對球體進行照射生成Phong光照模型,光源位置位于球體右上方。背景色設置為RGB(128,0,0)。使用鍵盤方向鍵旋轉(zhuǎn)球體。使用動畫按鈕,播放或停止球體動畫。實驗17球體Phong光照模型17.3效果圖球體Phong光照模型繪制效果如圖17-1所示。圖17-1球體Phong光照模型效果圖
實驗18立方體紋理映射
18.1實驗目的掌握位圖紋理讀入方法。掌握立方體紋理映射算法。實驗18立方體紋理映射18.2實驗要求建立三維坐標系Oxyz,原點位于屏幕客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。設置屏幕背景色為黑色。讀入6張構(gòu)成天空盒的位圖作為紋理映射到立方體的可見表面上。按下鼠標左鍵縮小立方體,按下鼠標右鍵增大立方體。使用鍵盤方向鍵旋轉(zhuǎn)紋理立方體。使用動畫按鈕,播放或停止立方體動畫。實驗18立方體紋理映射實驗18立方體紋理映射18.3效果圖天空盒效果如圖18-2所示。圖18-2天空盒效果圖
課程設計任務書
一、課程設計目的培養(yǎng)對圖形建模、變換、投影、消隱、光照原理的理解和應用。培養(yǎng)圖形類的編程能力。培養(yǎng)計算機圖形學應用軟件開發(fā)的能力。課程設計任務書
二、課程設計要求深入研究計算機圖形學的生成原理,設計算法實現(xiàn)具體的類。1.構(gòu)建基礎類實現(xiàn)CP2類繪制二維點;實現(xiàn)CP3類繪制三維點;實現(xiàn)CRGB類處理RGB顏色;實現(xiàn)CVector類處理矢量。2.構(gòu)建直線類實現(xiàn)CLine類繪制任意斜率的直線、實現(xiàn)CALine類繪制任意斜率的反走樣直線、實現(xiàn)CCLine類繪制任意斜率的顏色漸變直線、實現(xiàn)CACLine類繪制任意斜率的反走樣顏色漸變直線。課程設計任務書
3.構(gòu)建變換類實現(xiàn)CTransForm完成二維和三維圖形變換。4.構(gòu)建填充類
實現(xiàn)CFill類使用有效邊表算法填充多邊形、實現(xiàn)CZBuffer類進行深度緩沖消隱,并使用Gouraud和Phong明暗處理填充圖形面片。5.構(gòu)建光照類實現(xiàn)CLight類設置點光源、實現(xiàn)CMaterial類設置物體材質(zhì)、實現(xiàn)CLighting類對物體實施光照。通過課程設計項目的設計、開發(fā)、測試、總結(jié)和驗收各階段,深入理解計算機圖形學課程中的理論和算法,學習計算機圖形學相關(guān)類的編程技巧,初步掌握游戲開發(fā)的前期技能。課程設計任務書
三、開發(fā)環(huán)境
ViusalC++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)”的全部基本內(nèi)容。(2)小組方式(3人),要求完成“遞歸動態(tài)球體演示系統(tǒng)”、“圓環(huán)動態(tài)紋理演示系統(tǒng)”和“3DS接口演示系統(tǒng)”的全部基本內(nèi)容,并對每人完成的內(nèi)容作具體分工,合作完成。課程設計任務書
六、報告格式
課程設計報告由封面、需求分析、總體設計、詳細設計、源程序、程序運行效果圖、參考文獻組成。封面包括課程設計題目、學號、姓名、指導教師姓名和完成時間;需求分析包括項目的功能要求;總體設計給出類的結(jié)構(gòu);詳細設計給出算法流程圖;源程序給出主要模塊的頭文件和源文件;運行效果圖給出程序的動態(tài)效果圖;參考文獻給出課程設計中引用的文獻,并在報告中使用角標給出引文出處。七、評分標準
課程設計成績根據(jù)提交的課程設計報告以及軟件系統(tǒng)的驗收成績進行綜合評定,分為優(yōu),良,中,及格,不及格5個等級。要求在完成具體課程設計項目所要求功能的同時注重課程設計的創(chuàng)新性。完成課程設計項目所要求的功能及格設計了新類且類結(jié)構(gòu)清晰中或良好在課程設計項目的基礎上,創(chuàng)新性地添加了新的內(nèi)容優(yōu)秀Ⅰ基本圖元光柵掃描演示系統(tǒng)1.1設計目標圖形的繪制實質(zhì)上是像素的操作,像素有三個參數(shù),位置坐標x、y以及顏色c。本設計使用正方形模擬像素,保持屏幕的縱橫比為4:3,將基本圖元(直線、圓和橢圓)在像素級別上繪制出來。由于圓是橢圓的特例,即長軸和短軸長度相等的橢圓,可以使用鍵盤的約束來解決。本設計要求在像素級別演示直線的走樣、反走樣和顏色漸變;演示橢圓(含圓)的走樣和反走樣。詳細功能要求如下:
Ⅰ基本圖元光柵掃描演示系統(tǒng)1.1設計目標使用靜態(tài)切分視圖,將屏幕切分為左右窗格。左窗格是控制窗格,右窗格為顯示窗格。保持右窗格的二維設備坐標系不變,原點位于客戶區(qū)左上角,x軸水平向右為正,y軸鉛直向下為正。在右窗格內(nèi)繪制40×30個正方形代表虛擬像素網(wǎng)格,使用橡皮筋技術(shù)動態(tài)演示基本圖元的繪制過程。
Ⅰ基本圖元光柵掃描演示系統(tǒng)1.1設計目標在左窗格內(nèi)借助快捷顏色按鈕選擇直線的起點和終點顏色,或雙擊“起點”或“終點”顏色按鈕彈出系統(tǒng)顏色對話框,從中選擇直線的起點和終點顏色。在右窗格選擇直線段的起點像素和終點像素位置,分別繪制走樣直線、反走樣直線、顏色漸變直線。要求:在移動鼠標的過程中時,按下Shift鍵可繪制水平或垂直直線。
Ⅰ基本圖元光柵掃描演示系統(tǒng)1.1設計目標在左窗格選擇橢圓(含圓)的線條顏色,在右窗格內(nèi)選擇兩個像素作為橢圓(包含圓)的外接矩形的左上角點和右下角點,分別繪制走樣橢圓(含圓)、反走樣橢圓(包含圓)。要求:在移動鼠標的過程中,按下Shift鍵可以繪制圓。
Ⅰ基本圖元光柵掃描演示系統(tǒng)1.1設計目標在狀態(tài)欄動態(tài)顯示鼠標在右窗格內(nèi)的虛擬像素坐標,虛擬像素的坐標取為虛擬像素網(wǎng)格的中心點坐標,需要從設備坐標系轉(zhuǎn)換到虛擬像素坐標系,即右窗格網(wǎng)格左上角點的虛擬像素坐標為(0,0),網(wǎng)格右下角點的虛擬像素坐標為(39,29)。
Ⅰ基本圖元光柵掃描演示系統(tǒng)
1.2設計效果單擊左窗格的“直線”按鈕后,在右窗格內(nèi)使用鼠標繪制的走樣直線,如圖Ⅰ-1所示。單擊左窗格的“直線”按鈕,同時選中“反走樣”復選框后,在右窗格內(nèi)使用鼠標繪制的反走樣直線如圖Ⅰ-2所示。
Ⅰ基本圖元光柵掃描演示系統(tǒng)
1.2設計效果單擊左窗格的“直線”按鈕,同時為直線選擇了起點和終點顏色后,在右窗格內(nèi)使用鼠標繪制的顏色漸變直線如圖Ⅰ-3所示。單擊左窗格的“直線”按鈕,為直線選擇了起點和終點顏色后,同時選中“反走樣”復選框,在右窗格內(nèi)使用鼠標繪制的顏色漸變反走樣直線如圖Ⅰ-4所示。
Ⅰ基本圖元光柵掃描演示系統(tǒng)
1.2設計效果單擊左窗格的“橢圓”按鈕后,在右窗格內(nèi)使用鼠標繪制的走樣橢圓如圖Ⅰ-5所示。單擊左窗格的“橢圓”按鈕同時選中“反走樣”復選框后,在右窗格內(nèi)繪制的反走樣橢圓如圖Ⅰ-6所示。
Ⅰ基本圖元光柵掃描演示系統(tǒng)
1.2設計效果單擊左窗格的“橢圓”按鈕后,在右窗格內(nèi)拖動鼠標的同時按下Shift鍵繪制的走樣圓如圖Ⅰ-7所示。單擊左窗格的“橢圓”按鈕同時選中“反走樣”復選框后,在右窗格內(nèi)拖動鼠標的同時按下Shift鍵繪制的反走樣圓如圖Ⅰ-8所示。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.1設計目標
在正八面體的基礎上構(gòu)建球體。正八面體的頂點位于球面上,正八面體的體心設為球心。將正八面體每個正三角形表面的三條邊的中點連接形成四個小正三角形,并將三個中點拉伸到球面上。對每個小正三角形進行同樣的遞歸操作可以構(gòu)造出球體線框模型。請使用不同深度的遞歸劃分法分別繪制無光照線框球,有光照線框球、無光照表面球和有光照表面球。給定沿x,y,z坐標軸3個方向的位移量和繞x,y,z坐標軸的旋轉(zhuǎn)角度,控制球體在窗口客戶區(qū)內(nèi)運動。當球體和客戶區(qū)邊界發(fā)生碰撞后,改變運動方向。請使用三維正交變換繪制遞歸動態(tài)球體。詳細功能要求如下:
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.1設計目標使用靜態(tài)切分視圖,將窗口切分為左右窗格。左窗格為繼承于CForemView類的表單視圖類CLeftPortion,右窗格為一般視圖類CTestView。右窗格的三維坐標系原點位于客戶區(qū)中心,x軸水平向右為正,y軸鉛直向上為正,z軸垂直于屏幕指向觀察者。左窗格放置代表“球體控制”、“模型分類”、“光源開關(guān)”、“平移變換”和“旋轉(zhuǎn)變換”4個組框控件?!扒蝮w控制”組框提供“球體半徑”和“球面級數(shù)”2個滑動條;“模型分類”組框提供“線框”和“表面”2個單選按鈕;“光源開關(guān)”分類組框提供“關(guān)”和“開”2個單選按鈕;“平移變換”組框提供“X方向”、“Y方向”和“Z方向”3個滑動條;“旋轉(zhuǎn)變換”組框提供“繞X軸”、“繞Y軸”和“繞Z軸”3個滑動條。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.1設計目標球體在右窗格內(nèi)根據(jù)左窗格的設定值運動,并和客戶區(qū)邊界發(fā)生碰撞。當球面級數(shù)的值為8時,右窗格內(nèi)的球體退化為正八面體。當球面級數(shù)的值為32時,在右窗格內(nèi)的正八面體的每個等邊三角形的三條邊上取3個中點并用直線連接,形成4個小正三角形。將3個中點的模長擴展至球體半徑長度,得到遞歸球體。當球面級數(shù)增加時,對每個小正三角形面片繼續(xù)進行同樣的遞歸,最終生成遞歸球體。根據(jù)左窗格的參數(shù)值,分別繪制無光照和有光照消隱線框球、無光照和有光照表面球。其中無光照消隱線框采用走樣直線繪制,顏色為白色;有光照消隱線框球采用反走樣顏色漸變直線繪制;光照表面球使用Gouraud雙線性光強插值模型繪制,無光照球體表面填充為白色。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“關(guān)”,“球面級數(shù)”為0,當前球體面片數(shù)為8,右窗格內(nèi)繪制的初始消隱正八面體線框模型效果如圖Ⅱ-1所示。在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“關(guān)”,“球面級數(shù)”為1,當前球體面片數(shù)為32,右窗格內(nèi)繪制的消隱遞歸球體線框模型效果如圖Ⅱ-2所示。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“關(guān)”,“球面級數(shù)”為2,當前球體面片數(shù)為128,右窗格內(nèi)繪制的消隱遞歸球體線框模型效果如圖Ⅱ-3所示。在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“關(guān)”,“球面級數(shù)”為3,當前球體面片數(shù)為512,右窗格內(nèi)繪制的消隱遞歸球體線框模型效果如圖Ⅱ-4所示。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“關(guān)”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內(nèi)繪制的消隱遞歸球體線框模型效果如圖Ⅱ-5所示。在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光照開關(guān)”為“開”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內(nèi)繪制的消隱遞歸球體光照線框模型效果如圖Ⅱ-6所示。
Ⅱ遞歸動態(tài)球體演示系統(tǒng)
2.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“表面”后,光照開關(guān)為“關(guān)”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內(nèi)繪制的消隱遞歸球體無光照表面模型效果如圖Ⅱ-7所示。在左窗格的“模型分類”組框內(nèi)選擇“表面”后,光照開關(guān)為“開”,“球面級數(shù)”為4,當前球體面片數(shù)為2048,右窗格內(nèi)繪制的消隱遞歸球體光照表面模型效果如圖Ⅱ-8所示。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.1設計目標
設定光源和視點都位于z軸正向。在三維坐標系中,以原點為圓環(huán)中心,繪制動態(tài)旋轉(zhuǎn)的無光照和有光照的圓環(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)
3.1設計目標左窗格放置代表“圓環(huán)控制”、“模型分類”、“光源開關(guān)”、“明暗處理”、“紋理映射”的5個組框控件?!皥A環(huán)控制”組框提供“環(huán)體半徑”、“截面半徑”、“表面級數(shù)”和“截面級數(shù)”4個滑動條;“模型分類”組框提供“線框”、“表面”和“紋理”3個單選按鈕;“光源開關(guān)”組框提供“關(guān)”和“開”兩個單選按鈕;“明暗處理”組框提供“Gouraud”和“Phong”2個單選按鈕;“紋理映射”組框提供1個“選擇紋理”按鈕和1個顯示紋理縮略圖的Picture靜態(tài)控件,“選擇紋理”按鈕調(diào)用“打開文件”通用對話框,可以選擇如圖Ⅲ-1所示的3張不同的bmp位圖對圓環(huán)進行紋理映射。默認情況下,“模型分類”組框內(nèi)選擇的是“線框”,“光源開關(guān)”選擇的是“開”,同時禁用“明暗處理”組框和“紋理映射”組框。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.1設計目標
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.1設計目標圓環(huán)在右窗格內(nèi)以客戶區(qū)中心為體心繞x軸轉(zhuǎn)動。根據(jù)左窗格設置的參數(shù)值,分別繪制無光照和有光照的反走樣線框模型、無光照和有光照的Gouraud或Phong插值表面模型,無光照和有光照的Phong插值紋理模型。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光源開關(guān)”組框內(nèi)選擇“關(guān)”,右窗格內(nèi)繪制的無光照消隱圓環(huán)線框模型,如圖Ⅲ-2所示。在左窗格的“模型分類”組框內(nèi)選擇“線框”后,“光源開關(guān)”組框內(nèi)選擇“開”,右窗格內(nèi)繪制的光照消隱圓環(huán)線框模型,如圖Ⅲ-3所示。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“表面”后,“光源開關(guān)”組框內(nèi)選擇“開”,“明暗處理”組框內(nèi)選擇“Gouraud”,右窗格內(nèi)繪制的光照消隱圓環(huán)表面模型,如圖Ⅲ-4所示。在左窗格的“模型分類”組框內(nèi)選擇“表面”后,“光源開關(guān)”組框內(nèi)選擇“開”,“明暗處理”組框內(nèi)選擇“Phong”,右窗格內(nèi)繪制的光照消隱圓環(huán)表面模型,如圖Ⅲ-5所示。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“紋理”后,“光源開關(guān)”組框內(nèi)選擇“關(guān)”,“明暗處理”組框內(nèi)默認為“Phong”,右窗格內(nèi)繪制的無光照紋理映射圓環(huán)模型,如圖Ⅲ-6所示。在左窗格的“模型分類”組框內(nèi)選擇“紋理”后,“光源開關(guān)”組框內(nèi)選擇“開”,“明暗處理”組框內(nèi)默認為“Phong”,右窗格內(nèi)繪制默認貼圖為Ⅲ-1(a)的紋理映射圓環(huán)模型,如圖Ⅲ-7所示。
Ⅲ圓環(huán)動態(tài)紋理演示系統(tǒng)
3.2設計效果在左窗格的“模型分類”組框內(nèi)選擇“紋理”后,“光源開關(guān)”組框內(nèi)選擇“開”,“明暗處理”組框內(nèi)默認為“Phong”,通過“紋理映射”組框內(nèi)的“選擇紋理”按鈕更換紋理位圖為圖Ⅲ-1(a)或(c)后,右窗格內(nèi)繪制的紋理映射圓環(huán)模型,如圖Ⅲ-8和Ⅲ-9所示。
Ⅳ動態(tài)光源演示系統(tǒng)
4.1設計目標在窗口客戶區(qū)中心繪制三維球體表面模型,材質(zhì)為灰色。圍繞球體設置紅綠藍三個光源。紅綠藍光源分別在xoy面、yoz面和zox面內(nèi)沿不同的橢圓軌道環(huán)繞三維球體旋轉(zhuǎn)。根據(jù)光源的顏色和動態(tài)變化的位置,演示三維球體的光照效果。詳細功能要求如下:使用靜態(tài)切分視圖,將窗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆內(nèi)蒙古自治區(qū)錫林郭勒盟高三上學期期末考試歷史試題(解析版)
- 2024-2025學年浙江省杭州地區(qū)(含周邊)重點中學高二上學期期中考試歷史試題(解析版)
- 廣東省廣州市天河區(qū)2025屆高三上學期綜合測試(一)英語試卷含答案
- 《美術(shù)基本種類》課件
- 單位管理制度集合大合集【人員管理】十篇
- 單位管理制度匯編大合集【人力資源管理篇】十篇
- 單位管理制度合并匯編人員管理
- 單位管理制度分享匯編【職員管理】十篇
- 高中語文一些重要的文化常識
- 單位管理制度范例選集【職工管理篇】
- 新入職員工年終工作總結(jié)課件
- 靜脈導管維護
- 年度先進員工選票標準格式
- 中小企業(yè)內(nèi)部控制與風險管理(第二版)項目五:銷售業(yè)務內(nèi)部控制與風險管理
- 中鐵二局工程項目全員安全教育培訓考試試題(普工)附答案
- 08坦白檢舉教育
- 10、美的微波爐美食創(chuàng)意拍攝腳本
- 07FK02防空地下室通風設備安裝PDF高清圖集
- ANSI-ASQ-Z1.4-抽樣標準培訓教材
- 思想品德鑒定表(學生模板)
- MA5680T開局配置
評論
0/150
提交評論