-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

CAD應用程序開發詳解——Visual C++與OpenGL綜合應用

( 簡體 字)
作者:王清輝,李靜蓉類別:1. -> 程式設計 -> C++ -> VC++
   2. -> 多媒體 -> OpenGL
譯者:
出版社:電子工業出版社CAD應用程序開發詳解——Visual C++與OpenGL綜合應用 3dWoo書號: 33839
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:9/1/2012
頁數:432
光碟數:1
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787121179709
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

筆者長期從事計算機輔助設計(CAD)系統的研究與開發工作,將自己從事CAD系統設計與開發的經驗提煉和總結并匯集成書,一直是筆者的一個心愿。2003年,編著了《Visual C++ CAD應用程序開發技術》一書。該書出版后,讀者發來電郵100余封,給予了積極評價,并交流了在各自專業領域從事CAD開發的一些技術問題。同時,該書所附帶光盤中的程序也在國內軟件開發的主要論壇被廣泛轉載,成為國內OpenGL及CAD開發的主要參考資料之一,并被國內科技論文作為參考文獻廣泛引用。
隨著近年來CAD技術的發展,以及近年來與讀者的交流與體驗,筆者感覺有必要在原書的基礎上,對該書的內容進行重要的擴充與修改,并增加更多新的內容。恰逢電子工業出版社來我校組織約稿,遂將上述想法付諸實施。
CAD軟件開發是工程軟件開發中的一個重要領域。開發一個三維CAD軟件所涉及的知識面很多,如何規劃和展開軟件的開發工作是系統開發成功與否的關鍵問題之一。目前,單純講解OpenGL技術、Visual C++使用,以及面向對象的編程技術的出版物較多,本書的特點在于,從系統開發的角度,將開發一個基于OpenGL顯示的三維CAD軟件所涉及的各技術環節逐步展現給讀者,將計算機圖形學、OpenGL、面向對象的軟件開發技術三個方面的知識予以融會貫通,將許多技術難點、抽象的概念融入具體的開發實例中講解,著重講解系統開發過程中的實際問題,易于讀者領會,具有新穎性和強的實用性。在講解中,以一個三維CAD原形系統STLViewer的開發為主線,貫穿全書,并提供詳細的代碼注解。
Visual C++是Microsoft公司迄今開發的功能最為強大的軟件開發工具,是新一代CAD軟件的主要開發平臺。隨著面向對象程序設計技術廣泛應用、Visual C++優秀的開發環境、Microsoft Foundation Class (MFC)以及MFC程序框架、Windows操作系統對OpenGL的支持等,為在Windows系統上開發三維CAD軟件提供了極大的方便。讀者通過本書的學習,將能夠循序漸進地了解和掌握使用Visual C++開發三維圖形及CAD應用軟件的相關技術。通過對應用實例的具體剖析,希望能使讀者從軟件開發的思想方法上對面向對象的程序設計技術有更深入的了解。
本書內容共分10章,分別介紹基于MFC的總體程序框架的分析與設計;功能模塊的劃分以及相關DLL庫的開發與使用;CAD的基礎幾何類庫的開發;在MFC環境下使用OpenGL進行圖形繪制;開發面向CAD應用程序的OpenGL通用繪圖類;使用面向對象技術設計CAD軟件的幾何內核;曲面的數學描述及OpenGL繪制;CAD軟件的圖形交互;及軟件界面設計等。
本書所附帶的光盤中,根據每章講述的內容提供了全部的實現代碼。本書的代碼適用于Visual C++ 2005以上版本。
本書的內容是作者長期從事CAD系統設計和開發的一些經驗的提煉和總結。在內容或方法上若有疏漏和不妥之處,懇請各位讀者給予指正。
參加本書編寫工作的還有華南理工大學的熊巍、閻漢生、黃仲輝、張小明等,在此向他們表示感謝。

作者
內容簡介:

本書系統地闡述了在MFC與OpenGL API的集成開發環境下,用面向對象的技術開發三維CAD軟件的有關知識與方法,包括:總體程序框架的分析與設計、功能模塊的劃分,以及相關DLL庫的開發與使用、CAD基礎幾何類庫的開發、在MFC環境下使用OpenGL進行圖形繪制、開發面向CAD應用程序的OpenGL通用繪圖類、使用面向對象技術設計CAD軟件的幾何內核、CAD軟件的圖形交互、軟件界面設計等。在介紹過程中,以一個完整的三維CAD軟件(STLViewer)為例,將其開發過程貫穿于全書各章節,并附有完整的Visual C++實現代碼。全書面向開發實例進行分析與介紹,講解透徹、易于理解。讀者通過對本書的閱讀和學習,能夠掌握使用Visual C++進行具有一定復雜程度的軟件的設計與實現方法。
本書適合從事圖形和CAD軟件開發的技術人員,以及具有一定Visual C++基礎的大專院校相關專業學生閱讀。

目錄:

第1章 三維CAD軟件的系統框架分析 1
1.1 關于微軟基礎類MFC 1
1.2 MFC應用程序的文檔/視圖結構 2
1.2.1 文檔/視圖結構概述 2
1.2.2 文檔與多個視圖的關聯 3
1.2.3 文檔模板及主要組成類 4
1.3 實例分析:三維CAD模型瀏覽軟件STLViewer 7
1.4 STLViewer的程序框架 8
1.5 STLViewer中類的層次設計及軟件模塊結構劃分 15
1.6 建立和使用動態鏈接庫 16
1.6.1 動態鏈接庫的基本概念 17
1.6.2 基于MFC的動態鏈接庫 18
1.6.3 查看執行程序EXE與DLL庫的層次關系 19
附:本章相關程序使用說明 19
第2章 矢量計算工具與幾何計算類庫設計 21
2.1 矢量運算概述 21
2.1.1 點 21
2.1.2 矢量 22
2.1.3 齊次坐標與齊次變換矩陣 25
2.2 設計點、矢量和齊次變換矩陣類 26
2.2.1 點類CPoint3D 27
2.2.2 矢量類CVector3D 31
2.2.3 變換矩陣類CMatrix3D 34
2.3 三維圖形的幾何變換 38
2.3.1 三維齊次變換矩陣 38
2.3.2 平移變換 38
2.3.3 旋轉變換/繞空間任意軸的旋轉變換函數的實現 39
2.3.4 幾何縮放 42
2.3.5 對稱變換/沿空間任意平面的對稱變換函數的實現 43
2.4 矢量計算及其工具函數集設計 44
2.4.1 判斷兩個空間矢量是否平行 45
2.4.2 計算兩個矢量的夾角 46
2.4.3 計算三角面片的面積 46
2.4.4 正交投影及點到直線之間的距離計算 47
2.4.5 直線求交 48
2.4.6 創建過平面三個點的圓 49
2.5 設計幾何基本工具庫GeomCalc.dll 51
2.5.1 GeomCalc.dll中的輸出類與輸出函數 51
2.5.2 創建幾何基本工具庫GeomCalc.dll的步驟 53
2.5.3 使用GeomCalc.dll 54
2.6 有關源程序代碼 55
2.6.1 文件CadBase.h 55
2.6.2 文件CadBase.cpp 64
2.6.3 文件CadBase1.cpp 91
附:本章相關程序及使用說明 96
第3章 創建基于MFC的OpenGL Windows程序 97
3.1 OpenGL概述 97
3.2 在Windows環境下使用OpenGL 99
3.2.1 OpenGL的函數庫 99
3.2.2 獲取與安裝OpenGL 99
3.2.3 OpenGL與GDI 100
3.2.4 渲染場境 101
3.2.5 像素格式 103
3.3 OpenGL MFC應用程序創建實例 108
3.3.1 創建一個應用程序框架 109
3.3.2 修改視類CGLView 111
3.3.3 使用OpenGL的雙緩存技術為應用程序增加動畫效果 119
3.4 程序清單 120
3.4.1 文件GLView.h 120
3.4.2 文件GLView.cpp 122
附:本章相關程序使用說明 129
第4章 設計封裝OpenGL功能的C++類 130
4.1 封裝OpenGL的C++類的設計 130
4.2 照相機類GCamera的設計 131
4.2.1 視點坐標系和視圖變換 132
4.2.2 投影變換與視景體 134
4.2.3 視口變換 135
4.2.4 設計照相機類GCamera 138
4.3 類COpenGLDC 141
4.4 修改類CGLView 146
4.5 運行應用程序 150
4.6 源程序清單 150
4.6.1 類GCamera的聲明代碼 151
4.6.2 類GCamera的實現代碼 152
4.6.3 類COpenGLDC的聲明代碼 154
4.6.4 類COpenGLDC的實現代碼 155
4.6.5 類CGLView的聲明代碼 158
4.6.6 類CGLView的實現代碼 159
附:本章相關程序使用說明 162
第5章 設計基于OpenGL的CAD圖形工具庫 163
5.1 創建動態鏈接庫glContext.dll 163
5.2 照相機類GCamera的功能增強 164
5.2.1 選擇典型的觀察視圖 166
5.2.2 景物平移 170
5.2.3 景物縮放 171
5.2.4 使用OpenGL的選擇模式 172
5.3 模型真實感渲染與OpenGL光照設置 173
5.3.1 光照的組成 174
5.3.2 定義OpenGL的光源 174
5.3.3 物體材質 176
5.3.4 單面光照與雙面光照 177
5.4 類COpenGLDC功能的增強 178
5.4.1 實現和Windows窗口的關聯 182
5.4.2 有關光源的操作 182
5.4.3 有關顏色的操作 185
5.4.4 圖形繪制函數 191
5.4.5 選擇模式 197
5.5 增加類CGLView中的功能 198
5.6 glContext類的輸出和調用 202
5.7 源程序清單 202
5.7.1 文件Camera.h(類GCamera) 202
5.7.2 文件Camera.cpp(類GCamera) 204
5.7.3 文件OpenGLDC.h(類COpenGLDC、CGLView) 210
5.7.4 文件OpenGLDC.cpp(類OpenGLDC) 214
5.7.5 文件 GLView.cpp(類CGLView) 225
附:本章相關程序使用說明 228
第6章 設計幾何內核模塊 229
6.1 CAD實體模型的常用表示方法 230
6.1.1 邊界表示法與體素構造法簡介 230
6.1.2 多邊形網格實體建模的概念 231
6.1.3 立體光造型(STL)文件格式 233
6.2 幾何對象類的設計 235
6.2.1 類的層次設計 235
6.2.2 幾何對象基本類CEntity 238
6.2.3 三角形面片對象類CTriChip 241
6.2.4 STL幾何模型類CSTLModel 243
6.2.5 高級幾何模型類CPart 247
6.3 串行化(Serialize)實現文檔存取功能 250
6.3.1 為什么要使用串行化 250
6.3.2 CArchive類 251
6.3.3 串行化類的設計步驟 252
6.3.4 CObArray的Serialize()函數 253
6.3.5 應用程序的文檔串行化實例剖析 253
6.4 利用多態性實現CAD模型的繪制 256
6.4.1 虛擬函數與多態性 256
6.4.2 利用多態性統一CAD元素的繪制接口 258
6.4.3 純虛擬函數 259
6.4.4 實現CPart模型的OpenGL顯示 260
6.5 建立幾何內核庫GeomKernel.dll 262
6.6 程序清單 263
6.6.1 文件Entity.h 263
6.6.2 文件Entity.cpp 267
附:本章相關程序使用說明 276
第7章 CAD應用程序的模塊化實現 277
7.1 網格模型可視化程序STLViewer的解決方案 278
7.1.1 網格模型可視化程序STLViewer的模塊結構 278
7.1.2 創建應用程序的解決方案 278
7.1.3 為解決方案配置目錄與路徑 280
7.2 設計應用程序框架 283
7.2.1 增加界面資源 283
7.2.2 修改框架類CMainFrame 284
7.2.3 修改文檔類CSTLViewerDoc 286
7.2.4 修改視圖類CSTLViewerView 287
7.3 運行STLViewer.exe 293
7.3.1 輸入STL模型 293
7.3.2 存儲STLViewer自己的文檔(*.mdl) 293
7.3.3 模型顯示縮放 294
7.3.4 使用鍵盤平移場景 294
7.3.5 模型視圖切換 294
7.3.6 模型著色模式切換 294
7.4 源程序清單 295
7.4.1 文件MainFrm.h 295
7.4.2 文件MainFrm.cpp 296
7.4.3 文件STLViewerDoc.h 299
7.4.4 文件STLViewerDoc.cpp 300
7.4.5 文件STLViewerView.h 302
7.4.6 文件STLViewerView.cpp 304
附:本章相關程序使用說明 309
第8章 曲線和曲面的OpenGL繪制及類設計 310
8.1 關于曲面造型技術 310
8.2曲線和曲面的參數表示 312
8.2.1 曲線的非參數表示 312
8.2.2 曲線的參數表示 312
8.2.3 插值與逼近 313
8.3 曲線的樣條描述 314
8.3.1 參數樣條曲線的基本概念 314
8.3.2 Bezier曲線、曲面的數學表示 315
8.3.3 使用OpenGL繪制Bezier曲線 316
8.3.4 使用OpenGL繪制Bezier曲面 319
8.3.5 NURBS曲線的數學表示 321
8.3.6 使用OpenGL繪制NURBS曲線 322
8.3.7 使用OpenGL繪制NURBS曲面 326
8.4 在應用程序中集成曲線和曲面功能 330
8.4.1 添加Bezier曲線功能 330
8.4.2 添加Bezier曲面功能 336
8.4.3 添加NURBS曲線功能 338
8.4.4 添加NURBS曲面功能 341
8.5 程序清單 344
8.5.1 類CBezierCurve的源代碼 344
8.5.2 類CBezierSurface的源代碼 348
8.5.3 類CNurbsCurve的源代碼 353
8.5.4 類CNurbsSurface的源代碼 359
8.5.5 COpenGLDC中新增的曲線和曲面繪制函數代碼 365
附:本章相關程序使用說明 370

第9章 CAD應用程序的界面設計 371
9.1 STLViewer的界面增強 371
9.2 工具欄的排列 372
9.3 使用快捷菜單 374
9.4 創建類似Visual Studio風格的浮動窗口 375
9.4.1 控制條與停靠欄 375
9.4.2 開發具有Visual Studio風格的浮動窗口 378
9.4.3 CTabCtrl控件的功能增強 380
9.4.4 建立界面工具庫DockTool.dll 387
9.5 使用樹型視圖CTreeView顯示和管理文檔數據 387
9.5.1 樹型視圖與樹型控件概述 388
9.5.2 在STLViewer中創建CPartTreeView 388
9.5.3 樹視圖CPartTreeView與文檔的關聯/文檔多視圖 390
9.5.4 在樹型控件中使用圖標 392
9.5.5 使用樹視圖控件顯示文檔中幾何模型的結構和屬性 393
9.5.6 通過樹視圖控件對文檔數據進行操作 395
附:本章相關程序使用說明 398
第10章 三維CAD圖形交互功能的實現 399
10.1 使用OpenGL選擇模式 400
10.1.1 OpenGL的三種操作模式 400
10.1.2 使用選擇模式 401
10.2 一個OpenGL選擇模式的應用程序 406
10.3 OpenGL的選擇功能與CAD應用程序的集成 410
10.3.1 定義選擇視景體/修改類CCamera 411
10.3.2 對選擇過程的操作/修改類COpenGLDC 412
10.3.3 自動給對象命名/對類CSTLModel的修改 414
10.3.4 在STLViewer中調用拾取功能 415
10.3.5 運行程序 417
10.4 三維空間的視景交互 417
10.4.1 鼠標移動跟蹤 417
10.4.2 OpenGL空間與Windows窗口的坐標轉換 419
附:本章相關程序使用說明 421
參考文獻 422
序: