《計算機圖形學實用技術(第3版)》是2012年清華大學出版社出版的圖書,作者是陳元琰、張睿哲、李建華。
基本介紹
- 書名:計算機圖形學實用技術(第3版)
- 作者:陳元琰、張睿哲、李建華
- ISBN:9787302287674
- 定價:42元
- 出版社:清華大學出版社
- 出版時間:2012-7-4
- 裝幀:平裝
- 印次:3-1
內容簡介,編輯推薦,目錄,
內容簡介
本書介紹了計算機圖形學的有關原理、算法及實現,從計算機圖形學的基本圖形生成講起,採取循序漸進的內容安排,由簡單到複雜,由二維到三維,理論與實踐相結合。書中的算法都儘量給出C程式,在後面的實驗指導中每章均有一個VC編程案例,讀者可以將書中講解內容很容易地在計算機上一一驗證,從而為深入理解圖形學原理提供最重要的保證,並為今後的計算機圖形學套用打下堅實的實踐基礎和編程積累。全書共8章,分別為:緒論、互動式圖形軟體設計、基本圖形生成、圖形變換、曲線和曲面、幾何造型、真實感圖形和實驗指導,其中最後一章“實驗指導”介紹了用VC編程實現各種計算機圖形學算法。
本書可作為高等院校各專業本、專科生計算機圖形學或計算機繪圖的教材,也可作為廣大計算機圖形學愛好者的自學教材或工作參考用書。
編輯推薦
計算機套用的廣泛普及和深入以及我國高校本、專科生的大量擴招,促使計算機專業人員和廣大非計算機專業的套用人員從計算機圖形學的理論高度和計算機繪圖的實用角度來研究和開發計算機圖形生成技術及軟體。目前,有關計算機圖形學的理論、用C語言編寫的計算機繪圖和用VC進行標準Windows界面的圖形軟體設計都有許多圖書出版,但這些均是獨立出現的。在多年的教學、科研和開發工作中我們深刻地體會到,如果沒有計算機圖形學的理論基礎,計算機圖形生成技術就無從談起;沒有用高級語言描述算法的詳細思路,計算機圖形學複雜的理論和方法就不能真正得到理解和套用。基於這些體會,作者認為很有必要編寫出版這樣的一本書,把計算機圖形學理論與計算機繪圖的實踐結合起來,在計算機圖形學理論與互動式圖形軟體設計之間架起一座橋樑,對圖形學的每個理論和方法儘量用詳細的算法程式描述出來,並掌握用Visual?C++開發工具進行互動式圖形軟體設計實踐,使學習者在掌握理論與實踐兩方面均可進退自如。
本書介紹了計算機圖形學的有關原理、算法及實現,從計算機圖形學的基本圖形生成講起,採取循序漸進的內容安排,由簡單到複雜,由二維到三維,理論與實踐相結合。書中的算法都儘量給出C程式,在後面的實驗指導中每章均有一個VC編程案例,讀者可以將書中講解內容很容易地在計算機上一一驗證,從而為深入理解圖形學原理提供最重要的保證,並為今後的計算機圖形學套用打下堅實的實踐基礎和編程積累。全書共8章,分別為:緒論、互動式圖形軟體設計、基本圖形生成、圖形變換、曲線和曲面、幾何造型、真實感圖形和實驗指導。其中最後一章為實驗指導,介紹了用VC編程實現各種計算機圖形學的算法。
本書要求讀者有線性代數和C語言基礎,若有Visual C++基礎則更好。讀者可根據自身情況,在C語言或Visual C++的基礎上進行上機練習、掌握和套用計算機圖形學的各種算法,並開發一些具有實用性的小型圖形軟體。
根據使用本書第2版的多年教學的經驗和體會,為了加強、充實一些經典的理論部分描述,使之更通俗易懂,同時使實踐部分更易實施與操作,本書第3版在第2版的基礎上做了如下一些修訂:第1章適當增加一些圖示說明;第2章增加一節簡單實用圖形學程式設計舉例;第3章對Bresenham畫圓、中點畫橢圓、Bresenham畫橢圓、有序邊表的填充、種子填充等算法的文字敘述、插圖或公式推導進行了修改和補充,增加了Cyrus Beck直線段的裁剪算法;第4章修改了錯切變換、投影變換、視窗視區變換的圖例,增加了新的一節“視域體及三維裁剪”;第5章增加了Bezier曲線的de Casteljau算法及偽碼和Bezier曲線的拼接討論,增設均勻B樣條曲線的遞歸定義表達式及示意圖,修改二次B樣條曲線示意圖,增設deboor算法及偽代碼。
本書由陳元琰主筆,張睿哲參與了第4章和第5章的編寫,李建華參與了第3~5章的編寫和全書的修訂。由於水平有限,書中難免存在缺點和不足,殷切希望廣大讀者批評指正。
目錄
第1章 緒論1
1.1 計算機圖形學的概念、發展和套用1
1.1.1 計算機圖形學的概念1
1.1.2 計算機圖形學的發展4
1.1.3 計算機圖形學的套用6
1.2 計算機圖形系統10
1.2.1 計算機圖形系統硬體10
1.2.2 計算機圖形系統軟體11
1.3 計算機圖形標準11
1.3.1 圖形標準12
1.3.2 圖形設備接口標準13
1.3.3 圖形元檔案標準13
1.3.4 基本圖形交換規範14
習題15
第2章 互動式圖形軟體設計16
2.1 互動式圖形軟體設計方法16
2.1.1 Visual C++ 6.0開發環境和開發工具概述16
2.1.2 MFC類庫簡介18
2.1.3 使用AppWizard生成圖形應用程式的框架21
2.1.4 使用資源編輯器生成圖形用戶界面24
2.1.5 利用訊息映射和訊息處理實現互動式繪圖26
2.2 CDC圖形程式庫30
2.2.1 繪圖工具選擇30
2.2.2 坐標系統設定與轉換33
2.2.3 繪圖模式與背景設定35
2.2.4 圖形繪製36
2.2.5 區域填充39
2.3 面向對象的畫圖程式設計40
2.3.1 類與數據封裝40
2.3.2 派生類與繼承性41
2.3.3 虛函式與多態性42
2.3.4 數據存儲與螢幕重繪43
2.3.5 繪圖程式的設計思路43
2.4 圖形類的定義44
2.4.1 圖形基類CShape45
2.4.2 直線類CLine45
2.4.3 貝塞爾曲線類CBezier46
2.4.4 矩形類CRectangle47
2.4.5 圓類CCircle49
2.4.6 橢圓類CEllipse50
2.4.7 多邊形類CPolygon52
2.5 繪圖程式的實現53
2.5.1 建立繪圖程式框架53
2.5.2 增加繪圖選單54
2.5.3 在螢幕上畫圖58
2.5.4 在文檔類中保存圖形64
2.5.5 創建線型線寬對話框67
2.5.6 圖形程式的編譯運行73
2.5.7 簡單實用圖形學程式設計舉例74
習題79
第3章 基本圖形生成80
3.1 直線的生成80
3.1.1 數值微分算法81
3.1.2 中點畫線算法83
3.1.3 Bresenham畫線算法84
3.2 圓與橢圓的生成86
3.2.1 圓的特性86
3.2.2 中點畫圓算法88
3.2.3 Bresenham畫圓算法89
3.2.4 橢圓的生成算法90
3.3 區域填充95
3.3.1 有序邊表填充算法95
3.3.2 邊填充算法101
3.3.3 種子填充算法102
3.3.4 圓和橢圓的填充106
3.3.5 圖案填充106
3.4 裁剪108
3.4.1 點的裁剪108
3.4.2 直線段的裁剪109
3.4.3 多邊形的裁剪118
3.5 線寬與線型的處理124
3.5.1 直線線寬的處理124
3.5.2 圓弧線寬的處理126
3.5.3 線型的處理127
習題127
第4章 圖形變換129
4.1 幾何變換129
4.1.1 幾何變換的齊次坐標法129
4.1.2 二維基本變換131
4.1.3 二維組合變換135
4.1.4 三維基本變換137
4.1.5 三維組合變換143
4.1.6 參數圖形的幾何變換144
4.2 投影變換148
4.2.1 正投影變換(三視圖)149
4.2.2 正軸測投影變換150
4.2.3 斜軸測投影變換153
4.2.4 透視投影變換155
4.2.5 視域體及三維裁剪159
4.3 視窗視區變換161
4.3.1 坐標系161
4.3.2 視窗與視區162
4.3.3 視窗-視區變換163
4.4 視向變換164
4.4.1 世界坐標系和觀察坐標系164
4.4.2 視向變換矩陣165
習題167
第5章 曲線和曲面168
5.1 曲線和曲面基礎168
5.1.1 規則曲線和曲面的3種坐標表示法168
5.1.2 參數樣條曲線和曲面的常用術語171
5.2 二次插值樣條曲線174
5.2.1 二次插值樣條曲線的數學表達式174
5.2.2 二次插值樣條曲線的加權合成176
5.2.3 二次插值樣條曲線的端點條件178
5.2.4 二次插值樣條曲線的性質179
5.3 三次插值樣條曲線181
5.3.1 三次自然樣條曲線181
5.3.2 Hermite樣條曲線182
5.3.3 Cardinal樣條曲線183
5.4 Bezier曲線和曲面185
5.4.1 Bezier曲線的定義186
5.4.2 Bezier曲線的性質187
5.4.3 二次Bezier曲線188
5.4.4 三次Bezier曲線189
5.4.5 反算Bezier曲線控制點190
5.4.6 Bezier曲線的多項式定義生成算法191
5.4.7 Bezier曲線的分割遞推de Casteljau算法192
5.4.8 Bezier曲線的拼接193
5.4.9 Bezier曲面195
5.5 B樣條曲線和曲面196
5.5.1 B樣條曲線的多項式定義(Clark定義法)197
5.5.2 B樣條曲線的遞推定義198
5.5.3 二次B樣條曲線201
5.5.4 三次B樣條曲線202
5.5.5 B樣條曲線生成的de Boor算法205
5.5.6 反求B樣條曲線的控制點及其端點性質208
5.5.7 B樣條曲面209
5.6 有理樣條曲線211
5.6.1 有理Bezier曲線211
5.6.2 有理B樣條曲線213
5.6.3 非均勻有理B樣條(NURBS)曲線215
習題216
第6章 幾何造型217
6.1 形體的定義和存儲模型217
6.1.1 形體的定義217
6.1.2 形體的存儲模型219
6.2 實體表示方法222
6.2.1 構造的實體幾何法222
6.2.2 邊界表示法224
6.2.3 掃描表示法225
6.2.4 特徵表示法225
6.2.5 單元分解表示法227
6.3 布爾運算228
6.3.1 布爾運算的概念229
6.3.2 多邊形的描述229
6.3.3 多邊形重疊性檢驗229
6.3.4 布爾運算的規則231
6.4 分形幾何造型232
6.4.1 分形和分形幾何造型的概念232
6.4.2 分形維數和分形幾何造型233
6.4.3 典型分形曲線集235
習題248
第7章 真實感圖形249
7.1 消除隱藏線249
7.1.1 平面體的消隱處理250
7.1.2 曲面體的消隱處理256
7.2 消除隱藏面269
7.2.1 基本檢測270
7.2.2 畫家算法272
7.2.3 深度緩衝器算法(Z緩衝區算法)274
7.2.4 掃描線算法275
7.2.5 區域細分算法277
7.3 光照模型與明暗效應278
7.3.1 光照的基本模型278
7.3.2 局部光照模型281
7.3.3 整體光照模型283
7.3.4 明暗處理方法284
7.4 紋理圖案映射286
7.4.1 確定映射關係287
7.4.2 平面圖案的矢量化處理與離散細分288
7.4.3 映射效果的三維顯示288
習題295
第8章 實驗指導297
8.1 基礎篇297
實驗一 直線掃描轉換298
實驗二 圓的掃描轉換298
實驗三 橢圓掃描轉換298
實驗四 區域遞歸種子填充299
實驗五 區域鏈佇列種子填充300
實驗六 有序邊表的圖案填充301
實驗七 Cohen-Sutherland線段編碼裁剪303
實驗八 Cyrus-Beck多邊形視窗參數化裁剪305
實驗九 矩形視窗逐邊裁剪多邊形306
實驗十 二維圖形的幾何變換308
實驗十一 三維圖形投影變換310
實驗十二 Bezier曲線繪製312
實驗十三 B樣條曲線繪製313
8.2 提高篇315
實驗A 基本圖形生成編程315
實驗B 圖形變換編程332
實驗C 曲線編程342
實驗D 三維幾何造型編程349
實驗E 真實感圖形編程356
參考文獻359
附錄A 計算機圖形學函式館361
A.1 全局函式原型定義362
A.2 全局函式的實現365