《計算幾何算法與實現(Visual C++版)》是2017年8月電子工業出版社出版的圖書,作者是孔令德。
基本介紹
- 中文名:計算幾何算法與實現(Visual C++版)
- 作者:孔令德
- 出版時間:2017年8月
- 出版社:電子工業出版社
- 頁數:304 頁
- ISBN:9787121315695
- 定價:49 元
- 開本:16 開
內容簡介,圖書目錄,
內容簡介
本書系統介紹Bezier曲線曲面、B樣條曲線曲面和NURBS曲線曲面的理論與算法。第1章介紹曲線曲面的基本概念及表示形式;第2章介紹二維圖形和三維圖形的程式設計方法,示範直線繪圖函式的使用方法,重點講解製作格線模型動畫的雙緩衝技術;第3章講解三次樣條曲線、三次參數樣條曲線、Hermite樣條曲線和Cardinal曲線的原理與算法;第4章介紹三次Bezier曲線的定義算法、de Casteljau遞推算法,重點講解基於雙三次Bezier曲面片製作Utah 茶壺的算法,並在課程設計部分給出完整的代碼;第5 章介紹B 樣條的de Boor-Cox遞推定義算法、二次和三次均勻B樣條算法、非均勻B樣條曲線計算節點矢量的Hartley-Judd算法;第6章在曲線部分介紹NURBS精確表示圓弧的方法,在曲面部分重點講解NURBS構建三維曲面如球、圓環、酒杯的原理和算法。為了改變計算幾何以數學公式推導為主的單調學習方法,增強曲線曲面的可視化效果。本書提供所有與原理配套的Visual C++源程式。這些源程式用模組化方法編寫,注釋簡單易懂。為了降低程式的理解難度,旋轉曲面投影以最簡單的正交投影為主。對於計算機專業教師,可以深入理解原理與代碼的對應關係;對於非計算機專業教師,可以直接運行程式,本書不追求數學上的嚴密性與完整性,而注重於根據曲線曲面的數學公式的編程實現。本書的所有插圖全部使用程式繪製。從數學角度的理解轉換為圖形方面的觀察,可有效提高讀者的學習興趣,實現將數學公式藉助於編程技術表示為圖形效果的設計初衷。本書附錄部分給出了6個實驗項目及2個課程設計項目,並給出了猶他茶壺和花瓶的Visual C++原始碼。本書可作為高等院校計算機科學與技術、數字媒體技術、信息與計算科學、機械設計等專業本科生、碩士生、博士生的教材與參考書,也可供從事遊戲開發、計算機建模、計算機圖形學等領域的科學工作者參考使用。
圖書目錄
目 錄
第1章 緒論/1
1.1 計算幾何的研究內容/1
1.2 曲線曲面描述數學的發展/2
1.3 矢量代數基礎/4
1.3.1 矢量表示/4
1.3.2 矢量的運算/4
1.3.3 設計矢量類/5
1.4 曲線曲面的表示形式/8
1.4.1 顯式表示/8
1.4.2 隱式表示/9
1.4.3 參數表示/9
1.5 連續性條件/13
1.5.1 參數連續性/13
1.5.2 幾何連續性/13
1.6 預備知識/14
1.6.1 矢函式的導矢、切矢/14
1.6.2 曲線的自然參數方程/15
1.6.3 活動標架/16
1.6.4 曲率和撓率/18
1.6.5 型值點、插值、逼近、控制點/19
1.6.6 多項式基/20
1.7 本章小結/20
1.8 習題/20
第2章 圖形程式設計基礎/22
2.1 MFC上機操作步驟/22
2.1.1 應用程式嚮導/22
2.1.2 查看工程信息/25
2.2 基本繪圖函式/27
2.2.1 修改單文檔視窗顯示參數/28
2.2.2 CDC派生類與GDI工具類/29
2.2.3 映射模式/30
2.2.4 使用GDI對象/33
2.2.5 繪製直線函式/35
2.2.6 點陣圖操作函式/41
2.2.7 動畫函式/45
2.3 雙緩衝動畫技術/47
2.4 三維變換與投影/52
2.4.1 三維坐標系/52
2.4.2 三維幾何變換/54
2.4.3 三維物體的數據結構/58
2.4.4 投影變換/58
2.5 立方體線框模型/59
2.6 球體格線模型/62
2.7 本章小結/67
2.8 習題/67
第3章 三次插值曲線/69
3.1 三次樣條曲線/69
3.1.1 三次樣條函式的定義/69
3.1.2 三次樣條函式的表達式/70
3.1.3 求解Mi/71
3.1.4 邊界條件/71
3.1.5 追趕法求解三對角陣/73
3.1.6 繪製曲線/74
3.1.7 算法/74
3.2 參數樣條曲線/76
3.2.1 三次參數樣條的定義/76
3.2.2 三次參數樣條函式的表達式/77
3.2.3 邊界條件/78
3.2.4 算法/79
3.3 Hermite插值曲線/83
3.3.1 Hermite基矩陣/83
3.3.2 Cardinal曲線/85
3.3.3 Cardinal算法/86
3.4 本章小結/88
3.5 習題/88
第4章 Bezier曲線曲面/90
4.1 Bezier曲線的定義與性質/91
4.1.1 Bezier曲線的定義/91
4.1.2 Bernstein基函式的性質/93
4.1.3 Bezier曲線的性質/93
4.2 Bezier曲線的幾何作圖法/97
4.2.1 de Casteljau遞推公式/98
4.2.2 de Casteljau幾何作圖法/98
4.3 Bezier曲線的拼接/100
4.4 Bezier曲線的升階與降階/105
4.4.1 Bezier曲線的升階/105
4.4.2 Bezier曲線的降階/106
4.5 Bezier曲面/106
4.5.1 張量積曲面/106
4.5.2 Bezier曲面的定義/107
4.5.3 雙三次Bezier曲面的定義/107
4.5.4 雙三次Bezier曲面片的拼接/112
4.6 雙三次Bezier曲面片繪製猶他茶壺/119
4.6.1 猶他茶壺整體輪廓線/123
4.6.2 三維旋轉體的生成原理/123
4.6.3 繪製壺體/128
4.6.4 繪製壺蓋/129
4.6.5 繪製壺底/129
4.6.6 繪製壺柄/130
4.6.7 繪製壺嘴/131
4.7 有理Bezier曲線/133
4.7.1 有理Bezier曲線定義/134
4.7.2 有理一次Bezier曲線/134
4.7.3 有理二次Bezier曲線/135
4.7.4 有理Bezier曲線的升階和降階/138
4.7.5 有理Bezier曲面/140
4.8 本章小結/147
4.9 習題/147
第5章 B樣條曲線曲面/151
5.1 B樣條基函式的遞推定義及其性質/151
5.1.1 B樣條的遞推定義/151
5.1.2 B樣條基函式的性質/155
5.1.3 B樣條基函式算法/155
5.2 B樣條曲線定義/156
5.2.1 局部性質/157
5.2.2 定義域及分段表示/158
5.2.3 B樣條曲線的分類/159
5.3 均勻B樣條曲線/160
5.3.1 二次均勻B樣條曲線/160
5.3.2 三次均勻B樣條曲線/166
5.3.3 B樣條曲線造型靈活性/170
5.4 準均勻B樣條曲線/171
5.5 分段Bezier曲線/172
5.5 非均勻B樣條曲線/173
5.5.1 Riesenfeld算法/173
5.5.2 Hartley-Judd算法/177
5.6 重節點對B樣條基函式的影響/179
5.6.1 重節點對B樣條基函式的影響/179
5.6.2 重節點對B樣條曲線的影響/180
5.7 高次B樣條曲線/180
5.8 節點插入/182
5.9 B樣條曲面/186
5.9.1 B樣條曲面的定義/186
5.9.2 雙三次均勻B樣條曲面/186
5.9.3 非均勻雙三次B樣條曲面/191
5.10 本章小結/200
5.11 習題/200
第6章 NURBS曲線曲面/203
6.1 NURBS曲線的定義及幾何性質/204
6.1.1 NURBS曲線方程的三種等價表示/204
6.1.2 NURBS曲線三種表示方式之間的關係/207
6.1.3 NURBS曲線的幾何性質/209
6.2 權因子對NURBS曲線形狀的影響/210
6.2.1 投影變換中的交比/210
6.2.2 權因子的幾何意義/211
6.3 NURBS曲線的節點插入/214
6.4 圓弧的NURBS表示/218
6.4.1 0 <θ≤90°圓弧的NURBS表示/218
6.4.2 90°≤θ≤180°圓弧的NURBS表示/221
6.4.3 180°≤θ≤270°圓弧的NURBS表示/223
6.4.4 270°≤θ≤360°圓弧的NURBS表示/224
6.5 NURBS曲面/226
6.5.1 NURBS曲面的定義/226
6.5.2 NURBS曲面權因子的幾何意義/235
6.5.3 NURBS曲面的性質/236
6.6 一般曲面的NURBS表示/237
6.6.1 雙線性曲面/237
6.6.2 一般柱面/238
6.6.3 旋轉面/239
6.7 NURBS曲面繪製花瓶/243
6.7.1 知識要點/243
6.7.2 案例描述/243
6.7.3 設計原理/243
6.7.4 算法設計/244
6.7.5 程式代碼/244
6.7.6 案例總結/247
6.8 本章小結/248
6.9 習題/248
附錄 /52
參考文 /93