計算機圖形學實驗及課程設計(Visual C++版)

計算機圖形學實驗及課程設計(Visual C++版)

《計算機圖形學實驗及課程設計(Visual C++版)》是清華大學出版社於2012年2月出版的一本圖書,作者是孔令德。

基本介紹

  • 書名:計算機圖形學實驗及課程設計(Visual C++版)
  • 作者:孔令德
  • ISBN:9787302243519
  • 定價:39.5元
  • 出版社:清華大學出版社
  • 出版時間:2012-2-29
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書是《計算機圖形學基礎教程(Visual C++版)》(ISBN 978-7-302-17082-2)教材的配套實驗教材,提供了18個綜合性教學實驗和5個課程設計項目,可以滿足計算機圖形學課堂上機實驗和設計周課程設計任務。實驗項目編排上由淺入深,通過定義基礎類、直線類、變換類、填充類、光照類,最終構造了三維動態光照場景。本書的全部內容都基於MFC框架完成,彩插中展示的所有圖形均使用CDC類的SetPixel()成員函式繪製,未包含任何圖形學庫。教學實驗和課程設計項目的開發過程按照OpenGL的操作流程編寫,易於引導讀者從圖形學的原理領域進入到套用領域。
本書的教學實驗和課程設計項目的原始碼和實驗拓展項目的執行檔全部提供在筆者的個人網站上,請讀者下載後參照原始碼學習。通讀本書,讀者可以輕鬆掌握柏拉圖正多面體(正四面體、正六面體、正八面體、正十二面體和正二十面體)、球體、圓環等三維物體的線框模型、表面模型的建模方法。在三維動態光照場景中,可以調整物體表面模型的材質、添加紋理細節,改變視點和光源的位置,完成三維真實感圖形的動態繪製。
本書內容全面、案例豐富、注重理實一體化,適合作為本科計算機圖形學的實驗和課程設計教材。本書為原始碼提供了詳盡的注釋,可供計算機圖形學愛好者從編程的角度理解和掌握計算機圖形學原理。

圖書目錄

第一部分 教 學 實 驗實驗任務書3實驗1 繪製金剛石圖案4
1.1 實驗目的4
1.2 實驗要求4
1.3 效果圖4
1.4 實驗準備5
1.5 實驗步驟5
1.5.1 創建Test工程實驗框架5
1.5.2 繪製金剛石圖案15
1.5.3 寫出實驗報告24
1.6 思考與練習24
實驗2 繪製任意斜率的直線段27
2.1 實驗目的27
2.2 實驗要求27
2.3 效果圖27
2.4 實驗準備28
2.5 實驗步驟28
2.5.1 定義顏色類CRGB28
2.5.2 設計CLine直線類31
2.5.3 訊息映射36
2.5.4 寫出實驗報告40
2.6 思考與練習40實驗3 互動式繪製多邊形44
3.1 實驗目的44
3.2 實驗要求44
3.3 效果圖44
3.4 實驗準備45
3.5 實驗步驟45
3.5.1 人機互動技術45
3.5.2 雙緩衝技術47
3.5.3 繪製多邊形48
3.5.4 設計CPtrArray類48
3.5.5 有效邊表填充算法49
3.5.6 寫出實驗報告57
3.6 思考與練習57實驗4 二維幾何變換60
4.1 實驗目的60
4.2 實驗要求60
4.3 效果圖60
4.4 實驗準備61
4.5 實驗步驟61
4.5.1 靜態切分視圖框架61
4.5.2 設計左窗格視圖64
4.5.3 設計CTestDoc類68
4.5.4 設計包含齊次坐標的二維點類CP268
4.5.5 設計二維幾何變換類69
4.5.6 設計雙緩衝73
4.5.7 讀入圖形頂點74
4.5.8 繪製圖形74
4.5.9 碰撞檢測75
4.5.10 定時器函式75
4.5.11 禁止背景刷新函式76
4.5.12 寫出實驗報告76
4.6 思考與練習76實驗5 直線段裁剪79
5.1 實驗目的79
5.2 實驗要求79
5.3 效果圖79
5.4 實驗準備80
5.5 實驗步驟80
5.5.1 定義CP2類80
5.5.2 OnDrw()函式81
5.5.3 繪製裁剪視窗81
5.5.4 滑鼠左鍵按下函式82
5.5.5 滑鼠移動函式82
5.5.6 編碼函式83
5.5.7 裁剪函式84
5.5.8 寫出實驗報告86
5.6 思考與練習86實驗6 立方體線框模型正交投影88
6.1 實驗目的88
6.2 實驗要求88
6.3 效果圖88
6.4 實驗準備89
6.5 實驗步驟89
6.5.1 立方體數學模型89
6.5.2 三維變換90
6.5.3 正交投影92
6.5.4 設計三維點類92
6.5.5 定義三維變換類94
6.5.6 定義點表99
6.5.7 定義面表99
6.5.8 繪製立方體線框模型100
6.5.9 鍵盤控制100
6.5.10 動畫控制101
6.5.11 寫出實驗報告103
6.6 思考與練習103實驗7 立方體線框模型透視投影105
7.1 實驗目的105
7.2 實驗要求105
7.3 效果圖105
7.4 實驗準備106
7.5 實驗步驟106
7.5.1 透視投影變換的實現108
7.5.2 定義點表109
7.5.3 定義面表110
7.5.4 繪製立方體110
7.5.5 縮小立方體111
7.5.6 放大立方體111
7.5.7 寫出實驗報告111
7.6 思考與練習111實驗8 動態三視圖114
8.1 實驗目的114
8.2 實驗要求114
8.3 效果圖114
8.4 實驗準備115
8.5 實驗步驟115
8.5.1 建立多面體的數據結構115
8.5.2 創建2×2靜態切分窗格116
8.5.3 建立齊次三維點類116
8.5.4 建立表面類118
8.5.5 記憶體複製119
8.5.6 三視圖變換矩陣120
8.5.7 矩陣相乘函式122
8.5.8 繪製多面體斜等測圖122
8.5.9 繪製三視圖124
8.5.10 寫出實驗報告124
8.6 思考與練習124實驗9 動態繪製Bezier曲線127
9.1 實驗目的127
9.2 實驗要求127
9.3 效果圖127
9.4 實驗準備128
9.5 實驗步驟128
9.5.1 Bezier曲線的分割遞推德卡斯特里奧算法128
9.5.2 德卡斯特里奧函式129
9.5.3 繪製Bezier曲線130
9.5.4 繪製控制多邊形130
9.5.5 滑鼠左鍵按下函式131
9.5.6 滑鼠右鍵按下函式132
9.5.7 滑鼠移動函式132
9.5.8 寫出實驗報告132
9.6 思考與練習133實驗10 互動式三次B樣條曲線135
10.1 實驗目的135
10.2 實驗要求135
10.3 效果圖135
10.4 實驗準備136
10.5 實驗步驟136
10.5.1 三次B樣條曲線的幾何性質136
10.5.2 繪製控制多邊形137
10.5.3 繪製三次B樣條曲線138
10.5.4 滑鼠移動函式138
10.5.5 寫出實驗報告139
10.6 思考與練習139實驗11 旋轉的Koch雪花142
11.1 實驗目的142
11.2 實驗要求142
11.3 效果圖142
11.4 實驗準備143
11.5 實驗步驟143
11.5.1 Koch曲線的生成元143
11.5.2 繪製Koch雪花144
11.5.3 雙緩衝函式145
11.5.4 分形函式146
11.5.5 Koch函式147
11.5.6 寫出實驗報告147
11.6 思考與練習147實驗12 顏色漸變立方體150
12.1 實驗目的150
12.2 實驗要求150
12.3 效果圖150
12.4 實驗準備151
12.5 實驗步驟151
12.5.1 定義矢量類CVector151
12.5.2 定義顏色點類154
12.5.3 定義點表155
12.5.4 定義面表156
12.5.5 繪製物體156
12.5.6 顏色漸變有效邊表填充算法157
12.5.7 寫出實驗報告165
12.6 思考與練習165實驗13 地理劃分線框球169
13.1 實驗目的169
13.2 實驗要求169
13.3 效果圖169
13.4 實驗準備170
13.5 實驗步驟170
13.5.1 球體數學模型170
13.5.2 繪製球體173
13.5.3 寫出實驗報告175
13.6 思考與練習175實驗14 交叉條消隱180
14.1 實驗目的180
14.2 實驗要求180
14.3 效果圖180
14.4 實驗準備181
14.5 實驗步驟181
14.5.1 交叉條數學模型181
14.5.2 疊加條數學模型183
14.5.3 消隱算法184
14.5.4 定義深度緩衝點表185
14.5.5 定義深度排序點表186
14.5.6 設定坐標系187
14.5.7 禁用深度緩衝繪製交叉條187
14.5.8 啟用深度緩衝繪製交叉條188
14.5.9 深度排序函式188
14.5.10 設定背景色為黑色189
14.5.11 深度緩衝消隱算法189
14.5.12 寫出實驗報告199
14.6 思考與練習199實驗15 立方體光照模型201
15.1 實驗目的201
15.2 實驗要求201
15.3 效果圖201
15.4 實驗準備202
15.5 實驗步驟202
15.5.1 簡單光照模型202
15.5.2 設計光源類CLight205
15.5.3 設計材質類CMaterial207
15.5.4 設計光照類CLighting208
15.5.5 設計默認光源顏色和材質顏色210
15.5.6 設計紅色、綠色和藍色光源選單項211
15.5.7 設計紅寶石、綠寶石和藍寶石材質選單項212
15.5.8 設計變換類212
15.5.9 寫出實驗報告217
15.6 思考與練習217實驗16 球體Gouraud光照模型220
16.1 實驗目的220
16.2 實驗要求220
16.3 效果圖220
16.4 實驗準備221
16.5 實驗步驟221
16.5.1 雙線性光強插值模型221
16.5.2 設定光源顏色和材質顏色221
16.5.3 讀入頂點表222
16.5.4 讀入面表223
16.5.5 計算面片頂點的顏色224
16.5.6 繪製球面224
16.5.7 寫出實驗報告226
16.6 思考與練習226實驗17 球體Phong光照模型228
17.1 實驗目的228
17.2 實驗要求228
17.3 效果圖228
17.4 實驗準備229
17.5 實驗步驟229
17.5.1 Phong雙線性法矢插值模型229
17.5.2 修改CAET類230
17.5.3 修改CZBuffer類230
17.5.4 光照環境初始化239
17.5.5 繪製球面函式240
17.5.6 寫出實驗報告241
17.6 思考與練習241實驗18 立方體紋理映射244
18.1 實驗目的244
18.2 實驗要求244
18.3 效果圖244
18.4 實驗準備245
18.5 實驗步驟245
18.5.1 定義CFace類245
18.5.2 讀入點陣圖紋理246
18.5.3 定義面表247
18.5.4 繪製立方體249
18.5.5 填充立方體表面249
18.5.6 寫出實驗報告252
18.6 思考與練習252
第二部分 課 程 設 計
課程設計任務書257課程設計I 基本圖元光柵掃描演示系統259
I.1 設計目標259
I.2 設計效果259
I.3 總體設計261
I.4 類的設計262
I.5 視圖的設計278
I.6 結論289課程設計II 遞歸動態球體演示系統291
II.1 設計目標291
II.2 設計效果291
II.3 總體設計293
II.4 類的設計294
II.5 視圖的設計297
II.6 結論306課程設計III 圓環動態紋理演示系統308
III.1 設計目標308
III.2 設計效果308
III.3 總體設計310
III.4 類的設計314
III.5 視圖的設計334
III.6 結論343課程設計IV 動態光源演示系統345
IV.1 設計目標345
IV.2 設計效果345
IV.3 總體設計347
IV.4 類的設計347
IV.5 視圖的設計353
IV.6 結論356課程設計V 3DS接口演示系統358
V.1 設計目標358
V.2 設計效果359
V.3 總體設計359
V.4 類的設計361
V.5 視圖的設計369
V.6 結論373參考文獻374

相關詞條

熱門詞條

聯絡我們