《計(jì)算機(jī)圖形學(xué)》介紹計(jì)算機(jī)圖形學(xué)的基本原理及常用圖形算法,主要內(nèi)容包括:Visual C++ 6.0簡(jiǎn)介、圖形系統(tǒng)、二維圖形生成算法、圖形變換、圖形裁剪、曲線與曲面的生成、消除隱藏線和隱藏面、真實(shí)感圖形技術(shù)、分形圖形的生成,以及三維植物造型應(yīng)用實(shí)例等,其中三維植物造型應(yīng)用實(shí)例包含作者的部分科研成果。書(shū)中附有常用圖形算法的 VC++源程序代碼。每章均配有習(xí)題,可指導(dǎo)讀者深入地進(jìn)行學(xué)習(xí),附錄為實(shí)驗(yàn)指導(dǎo)。
《計(jì)算機(jī)圖形學(xué)》可作為計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)本科生的教材,也可以作為研究生的參考書(shū)或上機(jī)指導(dǎo)書(shū),還適用于計(jì)算機(jī)圖形學(xué)的初學(xué)者。
適讀人群 :計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)本科生
詳細(xì)介紹三維真實(shí)感圖形生成的全部過(guò)程及程序設(shè)計(jì)。結(jié)合作者的科研成果,將科研轉(zhuǎn)化為教學(xué)內(nèi)容,主要體現(xiàn)在第10章。強(qiáng)調(diào)理論與實(shí)踐相結(jié)合,動(dòng)腦與動(dòng)手相結(jié)合,附錄中給出了實(shí)驗(yàn)指導(dǎo)。
計(jì)算機(jī)圖形學(xué)主要研究計(jì)算機(jī)表示、處理和繪制圖形的原理及算法,是人與計(jì)算機(jī)之間直觀交互的高效手段。隨著計(jì)算機(jī)的發(fā)展與應(yīng)用,計(jì)算機(jī)圖形學(xué)已滲透到各個(gè)領(lǐng)域,特別是在動(dòng)畫(huà)、游戲、可視化和虛擬現(xiàn)實(shí)等方面應(yīng)用較廣,是計(jì)算機(jī)應(yīng)用的一個(gè)主要研究方向。
全國(guó)各大院校的計(jì)算機(jī)專(zhuān)業(yè)大都開(kāi)設(shè)了“計(jì)算機(jī)圖形學(xué)”這門(mén)課程,以滿(mǎn)足時(shí)代的需求!坝(jì)算機(jī)圖形學(xué)”的教材在國(guó)內(nèi)外也較多,而且教材的內(nèi)容也日益充實(shí),逐漸從純學(xué)術(shù)性、側(cè)重于理論推導(dǎo)和分析,發(fā)展到增加了許多算法分析、編程指導(dǎo)及程序代碼。本課程建議授課學(xué)時(shí)為40小時(shí),實(shí)驗(yàn)學(xué)時(shí)為20小時(shí),并要求先修C語(yǔ)言。本書(shū)中所介紹的程序都是在Visual C++ 6.0環(huán)境下調(diào)試運(yùn)行通過(guò)的。
全書(shū)共分10章,內(nèi)容包括Visual C++ 6.0簡(jiǎn)介(第1章)、圖形系統(tǒng)(第2章)、二維圖形生成算法(第3章)、圖形變換(第4章)、圖形裁剪(第5章)、曲線與曲面的生成(第6章)、消除隱藏線和隱藏面(第7章)、真實(shí)感圖形技術(shù)(第8章)、分形圖形的生成(第9章)和三維植物造型應(yīng)用實(shí)例(第10章)。
本書(shū)力求做到以下幾點(diǎn)。
1)重點(diǎn)介紹計(jì)算機(jī)圖形學(xué)中各類(lèi)基本圖形的生成算法及程序設(shè)計(jì),使讀者學(xué)完本教材后能編程實(shí)現(xiàn)基本的二維圖形到三維真實(shí)感圖形。
2)詳細(xì)介紹三維真實(shí)感圖形生成的全部過(guò)程及程序設(shè)計(jì)。
3)結(jié)合作者的科研成果,將科研轉(zhuǎn)化為教學(xué)內(nèi)容,主要體現(xiàn)在第10章。
4)強(qiáng)調(diào)理論與實(shí)踐相結(jié)合,動(dòng)腦與動(dòng)手相結(jié)合,附錄中給出了實(shí)驗(yàn)指導(dǎo)。
本書(shū)由陸玲、李麗華、宋文琳、桂穎編著,得到東華理工大學(xué)重點(diǎn)教材資助。在此感謝學(xué)校的領(lǐng)導(dǎo)和老師給予的大力支持和幫助。受水平所限,書(shū)中的不足之處在所難免,懇請(qǐng)廣大讀者和專(zhuān)家提出寶貴意見(jiàn)。
出版說(shuō)明
前言
第1章 Visual C++ 6.0簡(jiǎn)介1
1.1 Visual C++開(kāi)發(fā)環(huán)境窗口1
1.1.1 進(jìn)入和退出Visual C++集成開(kāi)發(fā)環(huán)境1
1.1.2 創(chuàng)建單文檔應(yīng)用程序1
1.1.3 添加簡(jiǎn)單程序代碼3
1.2 Visual C++工程及工作區(qū)4
1.2.1 工程4
1.2.2 工作區(qū)4
1.2.3 關(guān)鍵類(lèi)簡(jiǎn)介5
1.2.4 圖形設(shè)備簡(jiǎn)介6
1.3 Visual C++簡(jiǎn)單程序設(shè)計(jì)7
1.3.1 菜單的設(shè)計(jì)7
1.3.2 對(duì)話框的設(shè)計(jì)9
習(xí)題112
第2章 圖形系統(tǒng)13
2.1 計(jì)算機(jī)圖形學(xué)的發(fā)展及應(yīng)用13
2.1.1 計(jì)算機(jī)圖形學(xué)的發(fā)展簡(jiǎn)史13
2.1.2 計(jì)算機(jī)圖形學(xué)在我國(guó)的發(fā)展14
2.1.3 計(jì)算機(jī)圖形學(xué)的應(yīng)用15
2.1.4 計(jì)算機(jī)圖形學(xué)的發(fā)展動(dòng)向17
2.2 圖形生成硬件設(shè)備18
2.2.1 圖形輸入設(shè)備18
2.2.2 圖形顯示設(shè)備22
2.2.3 硬拷貝輸出設(shè)備29
2.3 圖形軟件系統(tǒng)32
2.3.1 圖形軟件的組成32
2.3.2 基本圖形軟件32
習(xí)題233
第3章 二維圖形生成算法34
3.1 直線圖形34
3.1.1 數(shù)值微分算法34
3.1.2 中點(diǎn)畫(huà)線算法36
3.1.3 Bresenham畫(huà)線算法38
3.1.4 直線線寬的處理40
3.2 圓與橢圓圖形41
3.2.1 簡(jiǎn)單方程產(chǎn)生圓弧41
3.2.2 中點(diǎn)畫(huà)圓算法42
3.2.3 Bresenham畫(huà)圓算法44
3.2.4 橢圓算法45
3.3 字符47
3.3.1 點(diǎn)陣字符47
3.3.2 向量字符48
3.4 區(qū)域填充51
3.4.1 種子填充算法52
3.4.2 多邊形域填充58
3.4.3 區(qū)域填充圖案65
3.5 圖形反走樣基礎(chǔ)70
3.5.1 過(guò)取樣70
3.5.2 簡(jiǎn)單區(qū)域取樣71
習(xí)題371
第4章 圖形變換73
4.1 窗口視圖變換73
4.1.1 窗口區(qū)和視圖區(qū)73
4.1.2 窗口區(qū)和視圖區(qū)的坐標(biāo)變換74
4.2 圖形的幾何變換75
4.2.1 二維圖形的幾何變換75
4.2.2 三維圖形的幾何變換80
4.3 形體的投影變換84
4.3.1 投影變換的分類(lèi)84
4.3.2 平行投影85
4.3.3 透視投影91
4.3.4 投影空間98
習(xí)題499
第5章 圖形裁剪101
5.1 二維裁剪101
5.1.1 Cohen-Sutherland直線裁剪算法101
5.1.2 中點(diǎn)分割算法105
5.1.3 凸多邊形窗口的Cyrus-Beck線裁剪算法106
5.1.4 內(nèi)裁剪與外裁剪108
5.1.5 凹凸多邊形的判定108
5.1.6 凹多邊形的分割算法109
5.1.7 Sutherland-Hodgman多邊形裁剪算法110
5.1.8 Weiler-Atherton多邊形裁剪算法114
5.1.9 字符裁剪115
5.2 三維裁剪116
5.2.1 三維Cohen-Sutherland端點(diǎn)編碼算法116
5.2.2 三維中點(diǎn)分割算法118
5.2.3 三維Cyrus-Beck算法119
習(xí)題5120
第6章 曲線與曲面的生成121
6.1 曲線的生成121
6.1.1 常見(jiàn)參數(shù)方程曲線121
6.1.2 Bezier曲線122
6.1.3 B樣條曲線127
6.2 曲面的生成131
6.2.1 旋轉(zhuǎn)曲面參數(shù)方程132
6.2.2 球面132
6.2.3 圓環(huán)面135
6.2.4 圓柱面、圓錐面和圓臺(tái)面135
6.2.5 任意曲線旋轉(zhuǎn)面137
6.3 雙線性曲面生成138
6.3.1 平面138
6.3.2 雙線性曲面139
6.4 單線性曲面生成139
6.4.1 柱面139
6.4.2 直紋面140
6.5 Bezier曲面及其拼合141
6.5.1 Bezier曲面141
6.5.2 Bezier曲面的拼合144
6.6 B樣條曲面146
習(xí)題6148
第7章 消除隱藏線和隱藏面149
7.1 隱藏線和隱藏面149
7.2 Roberts算法消除隱藏線149
7.3 消除隱藏面154
7.3.1 Z緩沖器算法154
7.3.2 畫(huà)家算法157
7.3.3 掃描線算法158
7.3.4 可見(jiàn)面光線追蹤算法159
習(xí)題7161
第8章 真實(shí)感圖形技術(shù)162
8.1 顏色162
8.1.1 色度與三刺激理論162
8.1.2 CIE色度圖163
8.1.3 顏色系統(tǒng)之間的轉(zhuǎn)換165
8.1.4 顏色模型166
8.2 簡(jiǎn)單光照模型169
8.3 多邊形表示的明暗處理175
8.3.1 恒定光強(qiáng)的多邊形繪制175
8.3.2 Gouraud明暗處理175
8.3.3 Phong明暗處理177
8.4 紋理表示177
8.4.1 顏色紋理顯示177
8.4.2 凹凸紋理表示180
8.5 透明處理與陰影顯示182
8.5.1 透明處理182
8.5.2 陰影顯示183
8.6 整體光照模型與光線跟蹤算法186
8.6.1 整體光照模型186
8.6.2 Whitted整體光照模型186
8.6.3 光線跟蹤算法187
習(xí)題8188
第9章 分形圖形的生成189
9.1 函數(shù)遞歸分形圖形189
9.1.1 Koch曲線189
9.1.2 生成元分形圖形190
9.1.3 樹(shù)枝的生成192
9.2 L系統(tǒng)197
9.2.1 二維L系統(tǒng)197
9.2.2 三維L系統(tǒng)202
9.2.3 真實(shí)感三維L系統(tǒng)205
9.3 迭代函數(shù)系統(tǒng)208
習(xí)題9209
第10章 三維植物造型應(yīng)用實(shí)例210
10.1 參數(shù)曲面變形210
10.2 植物枝干造型211
10.3 植物樹(shù)葉造型213
10.3.1 植物葉片造型213
10.3.2 植物葉脈造型219
10.3.3 葉片整體造型實(shí)例221
10.4 植物花朵造型225
10.4.1 花瓣的邊界造型225
10.4.2 花瓣的彎曲造型226
10.4.3 花瓣顏色模擬226
10.4.4 花冠的造型229
10.4.5 花朵造型實(shí)例229
10.5 植物果實(shí)造型238
10.5.1 橢球及其變形參數(shù)方程238
10.5.2 果實(shí)形狀的繪制239
10.5.3 果實(shí)顏色紋理模擬240
10.5.4 果實(shí)造型實(shí)例241
10.6 植物生長(zhǎng)造型245
10.6.1 百合花開(kāi)花造型245
10.6.2 南瓜生長(zhǎng)造型246
10.6.3 荔枝生長(zhǎng)造型247
10.6.4 黃瓜生長(zhǎng)造型248
10.7 果實(shí)體模造型實(shí)例249
10.7.1 西瓜體模造型249
10.7.2 冬棗體模造型249
10.7.3 杏體模造型250
習(xí)題10250
附錄 實(shí)驗(yàn)指導(dǎo)251
實(shí)驗(yàn)1 直線與圓的繪制251
實(shí)驗(yàn)2 字符繪制251
實(shí)驗(yàn)3 區(qū)域填充251
實(shí)驗(yàn)4 圖形投影變換252
實(shí)驗(yàn)5 圖形裁剪252
實(shí)驗(yàn)6 曲線的繪制252
實(shí)驗(yàn)7 曲面的繪制253
實(shí)驗(yàn)8 消隱處理253
實(shí)驗(yàn)9 光照模型253
實(shí)驗(yàn)10 綜合處理254
參考文獻(xiàn)