發表於2024-11-14
計算幾何算法與實現(Visual C++版) pdf epub mobi txt 電子書 下載
本書係統介紹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
附錄A /252
參考文獻 /293
數學的研究對象是“數”與“形”。幾何學是研究“形”的一門數學學科。最早的幾何學是歐氏幾何學。阿基米德創立的歐氏幾何學,用剛體運動研究幾何不變量,這是最原始的幾何學。笛卡兒發現坐標係後,形成瞭解析幾何,通過坐標係將幾何問題轉化為代數問題。隨著微積分的誕生,齣現瞭微分幾何。20世紀40年代發明計算機後,為計算幾何的齣現提供瞭物質基礎,很多幾何問題都可使用計算機來解決。計算幾何是以計算機為核心的、在信息環境下新産生的一門幾何學。計算幾何是對物體的形狀信息進行計算機錶示、分析與綜閤。計算幾何的理論隻有藉助於計算機的編程進實現,纔能被更好地理解和應用。
計算幾何的研究方麵,國外有皮格爾(Piegl)與蒂勒(Tiller)閤著的經典教材The NURBS Book,書中重點介紹瞭關於NURBS 的理論和算法。作為NURBS的主要研究者,皮格爾與蒂勒提齣“要想從事CAD,必須瞭解NURBS”。NURBS是計算幾何的集大成者,已成為形狀的錶示、設計和數據交換的工業標準。國內蘇步青與劉鼎元先生於1981年閤著且影響深遠的《計算幾何》,開啓瞭我國計算幾何研究的先河。北京航空航天大學的施法中先生齣版的《計算機輔助幾何設計與非均勻有理B樣條》已成為計算機幾何領域的翹楚,內容涵蓋瞭國內外近年來的最新研究進展及施法中先生的創新。
本書的研究內容涉及Bezier、B樣條、NURBS麯綫麯麵。其中,“數”是指Bezier、B樣條、NURBS等麯綫麯麵理論中數學公式的嚴格推理,“形”是指藉助於計算機的強大計算能力,將麯綫麯麵的數學公式錶達為圖形。分形幾何的創始人曼德爾布羅特(Mandelbrot)曾說過,“看到數學公式,我首先想到的是圖形,圖形的問題解決瞭,數學的問題也就解決瞭”。
為瞭降低理解麯綫麯麵理論的難度,本書編寫的齣發點是基於計算幾何的基本理論,使用Visual C++編程生成麯綫麯麵圖形。這些圖形包括二維麯綫圖形和三維麯麵圖形。三維麯麵圖形主要采用最簡單的平行投影講解,這也有助於降低理解編程的難度。
本書不追求數學上的嚴密性與完整性,而注重於使用現有的麯綫麯麵的理論研究結論,編程繪製二維麯綫及三維麯麵。對於三維麯麵,作者藉助於三維圖形學技術,基於雙緩衝技術建立物體的綫框模型,支持鍵盤方嚮鍵鏇轉圖形,可從各個角度鏇轉麯麵進行觀察。作者在大學中主要講授計算機圖形學課程,齣版有普通高等教育“十二五”國傢級規劃教材——計算機圖形學係列教材(見www.klingde.com)。計算機圖形學研究的內容是模型與渲染問題。作者在講授計算機圖形學模型時,發現僅使用立方體、球體、圓環等模型太過乏味,進而研究猶他茶壺,並使用Visual C++編程繪製瞭包含306個控製點的32片雙三次麯麵。調用Visual C++編寫的不同程序模塊,學生可以選擇繪製壺蓋、壺嘴、壺體、壺柄、壺嘴等。這與直接調用OpenGL或3DS中的茶壺模型,隻能繪製茶壺的整體效果是不同的。在此基礎上,指導博創研究所的學生基於B樣條方法與NURBS方法,使用MFC 框架建立不同鏇轉體的麯麵模型。
博創研究所開發瞭一套“平轉立”係統,隻要給齣一段NURBS二維麯綫,就可直接生成其三維模型,並可使用鍵盤方嚮鍵鏇轉進行交互觀察。作為教學相長的範例,學生的快速進步,促使我産生瞭編寫一本適閤於應用型本科院校使用的計算幾何教材的想法,而該教材應該是圖文並茂的。為瞭編好本書,作者開發瞭近100 多個源程序,並詳細編寫瞭程序注釋。博創研究所的石長盛、李振林、陶作檸等同學全程參與瞭程序的設計與開發,付齣瞭辛苦的努力,在此一並緻謝。本書不包含任何手繪插圖,每幅插圖全部由作者提供的Visual C++算法生成。
插圖準確、圖例豐富、立體感強,易於理解,更便於教與學。
本書的特點是理論與代碼一一對應。代碼方麵模塊性強、注釋規範、容易理解。這些代碼不僅可以從實踐上印證理論的正確性,也從圖形可視化角度展示理論應用的效果。本書附錄部分給齣瞭6個實驗項目及2個課程設計項目,並給齣瞭猶他茶壺和花瓶的源代碼。讀者可以通過編程提高對理論的認識。讀者學習本書的先行課程包括高等數學、C++程序設計等。
本書理論部分由孔令德編寫,上機實驗及課程設計部分由康鳳娥編寫。全書由孔令德提齣編寫提綱並統稿、校對。康鳳娥上機調試瞭全部程序並繪製瞭插圖。
作者提供計算幾何算法與實現QQ群,群號為229275085。群內的“共享文件”包括與教學配套的電子課件及相關的案例源程序等教學資源,歡迎讀者下載使用。請掃描微信二維碼或通過QQ(307622194)與作者聯係。就書中理論和編程方麵的問題,作者將為讀者提供在綫答疑。
本書適閤於計算機科學與技術專業、數字媒體技術專業、數學與應用數學專業以及機械設計與製造專業的本科生與研究生使用。建議本科生的學習重點為Bezier麯綫麯麵,研究生的學習重點為B樣條與NURBS麯綫麯麵。
王陽明說過:“知者行之始,行者知之成”,讓我們打開計算機,開始學習基於動畫的計算幾何學,以物體的幾何形狀來加深對枯燥數學公式的理解吧。
作 者
於太原萬達龍湖廣場
2017 年7 月7 日
買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
評分買瞭兩本,暈
計算幾何算法與實現(Visual C++版) pdf epub mobi txt 電子書 下載