高等學(xué)校通用教材:計(jì)算機(jī)圖形學(xué)及實(shí)用編程技術(shù)
定 價(jià):28 元
- 作者:李春雨 等 著
- 出版時(shí)間:2009/3/1
- ISBN:9787811245585
- 出 版 社:北京航空航天大學(xué)出版社
- 中圖法分類:TP391.41
- 頁碼:286
- 紙張:膠版紙
- 版次:1
- 開本:16開
《計(jì)算機(jī)圖形學(xué)及實(shí)用編程技術(shù)》分上、下篇,共13章。上篇介紹計(jì)算機(jī)圖形學(xué)的原理、算法及實(shí)現(xiàn),即從基本圖形的生成,由簡(jiǎn)單到復(fù)雜,由二維到多維,循序漸進(jìn)。下篇介紹基于MFC和OpenGL的實(shí)用圖形編程技術(shù),學(xué)以致用,并起到舉一反三的作用。內(nèi)容為:計(jì)算機(jī)圖形學(xué)的概念、發(fā)展、應(yīng)用和軟硬件系統(tǒng);直線、圓、橢圓基本圖形的生成、曲線及區(qū)域的填充;幾何圖形的投影與變換;圖形裁剪、消隱處理;光照模型和圖案映射等真實(shí)感生成技術(shù),圖像處理的基本知識(shí),并用VC++進(jìn)行交互式圖形設(shè)計(jì)實(shí)例。在多年教學(xué)、科研和科技開發(fā)的基礎(chǔ)上,從計(jì)算機(jī)圖形學(xué)的理論高度和計(jì)算機(jī)繪圖的實(shí)用角度來研究、編寫《計(jì)算機(jī)圖形學(xué)及實(shí)用編程技術(shù)》。
《計(jì)算機(jī)圖形學(xué)及實(shí)用編程技術(shù)》可作為計(jì)算機(jī)、以及航空航天領(lǐng)域、機(jī)械、電子、建筑等專業(yè)的本科生教材,也可作為相關(guān)工程人員的參考書。
《計(jì)算機(jī)圖形學(xué)及實(shí)用圖形編程技術(shù)》第一篇較詳細(xì)地介紹了計(jì)算機(jī)圖形學(xué)的有關(guān)原理、算法及實(shí)現(xiàn),從計(jì)算機(jī)圖形的基本圖形生成講起,采取循序漸進(jìn)的內(nèi)容安排,由簡(jiǎn)單到復(fù)雜、由二維至三維,理論與實(shí)踐相結(jié)合,對(duì)書中的主要算法都給出了C程序。在第二篇給出了完整的VC編程范例,考慮到OpenGL強(qiáng)大的功能和良好的結(jié)構(gòu),以及MFC的方便實(shí)用性,實(shí)例是以它們?yōu)榛A(chǔ)的;另外,為給學(xué)習(xí)者留有余地,范例中的許多算法與理論篇中的不盡相同,學(xué)習(xí)者須按照書中的講解,將這些C程序移植到范例中去,舉一反三,就可容易地在計(jì)算機(jī)上得到驗(yàn)證與提高,從而為深入理解圖形學(xué)原理提供重要的保證,并為今后的計(jì)算機(jī)圖形學(xué)應(yīng)用打下堅(jiān)實(shí)的實(shí)踐基礎(chǔ)和編程經(jīng)驗(yàn)積累。 《計(jì)算機(jī)圖形學(xué)及實(shí)用圖形編程技術(shù)》要求學(xué)習(xí)者有線性代數(shù)和C、C++語言的基礎(chǔ)。若有Visual C++6.0基礎(chǔ)更好,因?yàn)榭紤]到實(shí)用性和適用性,《計(jì)算機(jī)圖形學(xué)及實(shí)用圖形編程技術(shù)》使用的開發(fā)工具是微軟公司的Visual Studio 6.0版。學(xué)習(xí)者可根據(jù)自身情況,在C語言或Visual C++的基礎(chǔ)上上機(jī)練習(xí),掌握和應(yīng)用圖形學(xué)的各種算法,并開發(fā)一些具有實(shí)用性的小型繪圖軟件。
隨著知識(shí)經(jīng)濟(jì)時(shí)代的到來,計(jì)算機(jī)圖形生成技術(shù)的應(yīng)用日益廣泛。這就必然促使計(jì)算機(jī)專業(yè)人員、廣大非計(jì)算機(jī)專業(yè)的應(yīng)用人員,從計(jì)算機(jī)圖形學(xué)的理論高度和計(jì)算機(jī)繪圖的實(shí)用角度來研究和開發(fā)計(jì)算機(jī)圖形生成技術(shù)及軟件。在多年的教學(xué)、科研和技術(shù)的開發(fā)工作中,深刻地體會(huì)到:沒有計(jì)算機(jī)圖形的理論基礎(chǔ),計(jì)算機(jī)圖形生成技術(shù)就無從談起;沒有高級(jí)語言描述算法的詳細(xì)思路,圖形學(xué)復(fù)雜的理論和方法就不能真正得到理解和應(yīng)用;谶@些體會(huì),作者認(rèn)為很有必要編寫出版這樣的一本書,即把計(jì)算機(jī)圖形學(xué)理論與計(jì)算機(jī)繪圖的實(shí)踐結(jié)合起來,并掌握用VC++開發(fā)工具進(jìn)行圖形軟件的設(shè)計(jì)。
有一個(gè)形象地有關(guān)汽車的比喻可以類推到計(jì)算機(jī)圖形學(xué)的教學(xué)方法上,講授圖形學(xué)有三種方法:方法一——算法法,就是要求學(xué)生掌握與汽車工作原理有關(guān)的各種知識(shí),如發(fā)動(dòng)機(jī)、傳動(dòng)裝置等;方法二——觀察法,就是讓學(xué)生坐在后排作為一個(gè)旁觀者欣賞風(fēng)景;方法三——編程法,就是指導(dǎo)學(xué)生如何駕駛,如何把汽車開到想去的地方。本書把方法一與方法三相結(jié)合,使學(xué)習(xí)者在掌握理論和實(shí)用知識(shí)兩方面均感到應(yīng)用自如。
本書第一篇較詳細(xì)地介紹了計(jì)算機(jī)圖形學(xué)的有關(guān)原理、算法及實(shí)現(xiàn),從計(jì)算機(jī)圖形的基本圖形生成講起,采取循序漸進(jìn)的內(nèi)容安排,由簡(jiǎn)單到復(fù)雜、由二維至三維,理論與實(shí)踐相結(jié)合,對(duì)書中的主要算法都給出了C程序。在第二篇給出了完整的VC編程范例,考慮到OpenGL強(qiáng)大的功能和良好的結(jié)構(gòu),以及MFC的方便實(shí)用性,實(shí)例是以它們?yōu)榛A(chǔ)的;另外,為給學(xué)習(xí)者留有余地,范例中的許多算法與理論篇中的不盡相同,學(xué)習(xí)者須按照書中的講解,將這些C程序移植到范例中去,舉一反三,就可容易地在計(jì)算機(jī)上得到驗(yàn)證與提高,從而為深入理解圖形學(xué)原理提供重要的保證,并為今后的計(jì)算機(jī)圖形學(xué)應(yīng)用打下堅(jiān)實(shí)的實(shí)踐基礎(chǔ)和編程經(jīng)驗(yàn)積累。
本書要求學(xué)習(xí)者有線性代數(shù)和C、C++語言的基礎(chǔ)。若有Visual C++6.0基礎(chǔ)更好,因?yàn)榭紤]到實(shí)用性和適用性,本書使用的開發(fā)工具是微軟公司的Visual Studio 6.0版。學(xué)習(xí)者可根據(jù)自身情況,在C語言或Visual C++的基礎(chǔ)上上機(jī)練習(xí),掌握和應(yīng)用圖形學(xué)的各種算法,并開發(fā)一些具有實(shí)用性的小型繪圖軟件。
本書由鄭州大學(xué)李春雨、鄭志蘊(yùn)、譚同德,中原工學(xué)院張?zhí),河南農(nóng)業(yè)大學(xué)李福超,鄭州輕工業(yè)學(xué)院魏云冰,河南工業(yè)大學(xué)丁偉等同志對(duì)本課程10多年的教學(xué)積累和科學(xué)研究,反復(fù)研討并集體編寫而成。具體分工如下:第1,2,3章由李春雨編寫,第4、6章由鄭志蘊(yùn)編寫,
第5章由譚同德編寫,第7、8章由魏云冰編寫,第9、10章由李福超編寫,第11、12章由張?zhí)帉懀?br> 第13章由丁偉編寫。全書由李春雨匯總和整理。書中內(nèi)容雖為作者多年教學(xué)和科研工作的總結(jié)與體會(huì),但由于作者水平有限,書中難免存在缺點(diǎn)和不足,殷切希望廣大讀者批評(píng)指正。
上篇
第1章 計(jì)算機(jī)圖形學(xué)基本知識(shí)
1.1 概述2
1.1.1 計(jì)算機(jī)圖形學(xué)的概念2
1.1.2 計(jì)算機(jī)圖形學(xué)的研究?jī)?nèi)容2
1.1.3 計(jì)算機(jī)圖形學(xué)與圖像處理的關(guān)系3
1.2 計(jì)算機(jī)圖形學(xué)的發(fā)展3
1.2.1 計(jì)算機(jī)圖形學(xué)的發(fā)展簡(jiǎn)史3
1.2.2 計(jì)算機(jī)圖形學(xué)的發(fā)展動(dòng)向5
1.3 計(jì)算機(jī)圖形學(xué)的應(yīng)用7
1.4 計(jì)算機(jī)圖形系統(tǒng)9
1.4.1 計(jì)算機(jī)圖形系統(tǒng)硬件9
1.4.2 計(jì)算機(jī)圖形系統(tǒng)軟件10
習(xí)題10
第2章 基本圖形的生成與計(jì)算
2.1 直線的生成算法11
2.1.1 直線的DDA算法11
2.1.2 直線的Bresenham算法12
2.2 二次曲線15
2.2.1 圓弧和橢圓弧的擬合法15
2.2.2 二次曲線的參數(shù)擬合法23
2.3 自由曲線28
2.3.1 拋物線參數(shù)樣條曲線29
2.3.2 Hermite曲線30
2.3.3 三次參數(shù)樣條曲線34
2.3.4 Bezier曲線37
2.3.5 B樣條曲線41
2.4 字符的生成44
2.4.1 基礎(chǔ)知識(shí)44
2.4.2 掃描線填色算法45
2.4.3 種子填色算法51
2.5 區(qū)域填充52
2.5.1 點(diǎn)陣式字符53
2.5.2 矢量式字符53
2.5.3 方向編碼式字符53
2.5.4 輪廓字型技術(shù)54
2.6 圖形的剪裁55
2.6.1 直線的剪裁55
2.6.2 多邊形的剪裁59
2.6.3 字符串的剪裁63
習(xí)題64
第3章 圖形變換
3.1 二維圖形的幾何變換66
3.1.1 二維圖形的幾何基本變換66
3.1.2 二維圖形幾何變換的表示69
3.1.3 錯(cuò)切變換71
3.1.4 組合變換71
3.2 窗口視圖變換73
3.2.1 用戶域和窗口區(qū)73
3.2.2 顯示器域和視圖區(qū)74
3.2.3 窗口區(qū)和視圖區(qū)的坐標(biāo)變換74
3.2.4 從規(guī)格化坐標(biāo)(NDC)到設(shè)備坐標(biāo)(DC)的變換75
3.3 三維圖形的幾何變換77
3.3.1 變換矩陣77
3.3.2 平移變換77
3.3.3 比例變換78
3.3.4 繞坐標(biāo)軸的旋轉(zhuǎn)變換78
3.3.5 繞任意軸的旋轉(zhuǎn)變換79
3.4 形體的投影變換81
3.4.1 投影變換分類81
3.4.2 正平行投影(三視圖)81
3.4.3 斜平行投影82
3.4.4 透視投影83
3.4.5 投影空間88
3.4.6 用戶坐標(biāo)系到觀察坐標(biāo)系的轉(zhuǎn)換89
3.4.7 規(guī)格化裁剪空間和圖像空間90
3.5 三維線段裁剪94
習(xí)題95
第4章 數(shù)據(jù)接口與交換標(biāo)準(zhǔn)
4.1 GKS元文件標(biāo)準(zhǔn)GKSM97
4.1.1 GKSM功能97
4.1.2 GKSM生成97
4.1.3 GKSM輸入99
4.2 計(jì)算機(jī)圖形元文件標(biāo)準(zhǔn)CGM100
4.2.1 CGM功能100
4.2.2 CGM描述100
4.3 計(jì)算機(jī)圖形接口標(biāo)準(zhǔn)CGI102
4.3.1 CGI功能102
4.3.2 光柵功能集104
4.4 基本圖形交換規(guī)范標(biāo)準(zhǔn)IGES104
4.4.1 IGES功能104
4.4.2 IGES元素105
4.4.3 IGES文件結(jié)構(gòu)109
4.5 DXF數(shù)據(jù)接口111
4.5.1 DXF文件結(jié)構(gòu)111
4.5.2 閱讀圖形交換文件112
4.5.3 利用圖形交換文件提取實(shí)體數(shù)據(jù)114
4.6 產(chǎn)品數(shù)據(jù)表達(dá)與交換標(biāo)準(zhǔn)STEP116
4.6.1 STEP的組成117
4.6.2 產(chǎn)品模型信息結(jié)構(gòu)118
4.6.3 幾何與拓?fù)浔硎?20
習(xí)題121
第5章 三維形體的表示
5.1 曲面的表示122
5.1.1 孔斯(Coons)曲面123
5.1.2 貝塞爾(Bezier)曲面127
5.1.3 B樣條曲面130
5.1.4 曲面片的連接131
5.2 實(shí)體的表示131
5.2.1 幾何元素的定義132
5.2.2 實(shí)體的線框表示133
5.2.3 實(shí)體的定義和正則形體134
5.2.4 正則集合運(yùn)算及集合成員分類136
5.2.5 實(shí)體的邊界表示138
5.2.6 掃描表示法143
5.2.7 構(gòu)造的實(shí)體幾何法144
5.2.8 八叉樹表示法146
5.3 其他三維造型法147
5.3.1 特征表示147
5.3.2 分形幾何表示148
5.3.3 體繪制技術(shù)151
5.3.4 從二維圖像信息構(gòu)造三維形體152
習(xí)題152
第6章 真實(shí)感圖形顯示
6.1 線消隱154
6.1.1 消隱的基礎(chǔ)知識(shí)154
6.1.2 凸多面體的隱藏線消除155
6.1.3 凹多面體的隱藏線消除155
6.2 面消隱157
6.2.1 區(qū)域排序算法157
6.2.2 深度緩存(Zbuffer)算法157
6.2.3 掃描線算法158
6.3 光照模型159
6.3.1 光源特性和物體表面特性159
6.3.2 光照模型及其實(shí)現(xiàn)160
6.3.3 明暗的光滑處理163
6.4 表面圖案與紋理164
6.4.1 表面圖案的描繪164
6.4.2 表面紋理的描繪166
6.5 顏色空間167
6.5.1 顏色的基本概念167
6.5.2 CIE色度圖168
6.5.3 幾種常用的顏色模型169
習(xí)題171
第7章 圖像處理
7.1 圖像基礎(chǔ)172
7.1.1 圖像的表示173
7.1.2 采樣和量化174
7.1.3 圖像文件的數(shù)據(jù)結(jié)構(gòu)175
7.2 圖像變換177
7.2.1 離散傅里葉變換177
7.2.2 快速傅里葉變換178
7.3 圖像增強(qiáng)180
7.3.1 空域增強(qiáng)180
7.3.2 頻域增強(qiáng)181
7.4 圖像恢復(fù)與壓縮編碼182
7.4.1 圖像恢復(fù)183
7.4.2 圖像編碼184
7.5 圖像分割186
7.5.1 四類圖像分割技術(shù)186
7.5.2 閾值分割法188
7.6 應(yīng)用實(shí)例——儲(chǔ)糧害蟲圖像識(shí)別189
習(xí)題193
下篇
第8章 基于MFC的圖形編程基礎(chǔ)
8.1 圖形軟件的MFC實(shí)現(xiàn)方法195
8.1.1 建立工程myvc195
8.1.2 0nDraw成員函數(shù)197
8.2 CDC類198
8.2.1 CDC類中常用的成員函數(shù)199
8.2.2 CDC類的派生類200
8.2.3 CDC類的調(diào)用函數(shù)201
8.3 基本圖元的繪制方法202
8.3.1 繪制點(diǎn)、直線、矩形202
8.3.2 繪制簡(jiǎn)單曲線204
8.3.3 文本的繪制205
8.4 圖形設(shè)備接口GDI206
8.4.1 GDI對(duì)象206
8.4.2 庫存GDI對(duì)象207
8.4.3 CPen類的使用208
8.4.4 CBrush類的使用210
8.4.5 CFont類的使用212
8.5 Windows映射模式與窗口視區(qū)變換214
8.5.1 Windows中定義的映射模式214
8.5.2 Windows映射模式設(shè)置215
8.5.3 窗口和視口219
習(xí)題220
第9章 基于MFC的交互繪圖
9.1 鼠標(biāo)繪圖221
9.1.1 如何響應(yīng)鼠標(biāo)消息221
9.1.2 繪圖模式的設(shè)置223
9.2 用鼠標(biāo)繪制圓225
9.3 通過對(duì)話框繪圖228
習(xí)題232
第10章 OpenGL基礎(chǔ)知識(shí)和實(shí)驗(yàn)框架的建立
10.1 OpenGL基礎(chǔ)知識(shí)和功能介紹233
10.1.1 OpenGL的簡(jiǎn)單介紹233
10.1.2 OpenGL工作流程234
10.1.3 OpenGL圖形操作步驟235
10.1.4 Windows下的OpenGL函數(shù)235
10.1.5 OpenGL基本功能236
10.1.6 Windows下OpenGL的結(jié)構(gòu)237
10.2 OpenGL的程序框架237
10.2.1 建立非控制臺(tái)的Windows程序框架238
10.2.2 建立OpenGL框架239
10.2.3 建立OpenGL框架的類文件239
10.2.4 完善Windows框架243
10.2.5 程序間的相互關(guān)系246
習(xí)題247
第11章 OpenGL的基本圖形
11.1 OpenGL庫函數(shù)命名方式248
11.2 基本圖形249
11.3 幾何變換254
11.4 輔助庫物體255
11.5 在OpenGL中顯示圖形255
11.6 建立物體類文件258
11.7 本章程序結(jié)構(gòu)260
習(xí)題262
第12章 OpenGL的組合圖形及光照和貼圖
12.1 飛機(jī)模型263
12.1.1 構(gòu)造飛機(jī)264
12.1.2 程序注釋265
12.1.3 增加動(dòng)感265
12.2 貼圖266
12.2.1 調(diào)入圖形文件266
12.2.2 給模型貼圖267
12.2.3 自定義長(zhǎng)方體BOX269
12.3 又一個(gè)組合圖形270
12.4 使用燈光271
12.4.1 OpenGL光組成271
12.4.2 創(chuàng)建光源272
12.4.3 啟動(dòng)光照273
12.4.4 在程序中使用光源273
12.5 本章程序結(jié)構(gòu)274
習(xí)題275
第13章 攝像漫游與OpenGL的坐標(biāo)變換
13.1 攝像機(jī)+漫游276
13.1.1 原理276
13.1.2 漫游程序277
13.1.3 漫游程序注釋278
13.1.4 漫游相關(guān)定義278
13.2 地面279
13.2.1 網(wǎng)格地面279
13.2.2 邊界設(shè)定280
13.2.3 使用攝像機(jī)281
13.3 OpenGL中的坐標(biāo)變換282
13.3.1 從三維空間到二維平面——相機(jī)模擬282
13.3.2 視點(diǎn)變換282
13.3.3 模型變換284
13.3.4 投影變換284
13.3.5 視口變換285
13.3.6 其他必要的矩陣操作285
習(xí)題286
參考文獻(xiàn)