TOP
紅利積點抵現金,消費購書更貼心
CAD應用程序開發詳解:VisualC++與OpenGL綜合應用(附光碟)(簡體書)
滿額折

CAD應用程序開發詳解:VisualC++與OpenGL綜合應用(附光碟)(簡體書)

商品資訊

人民幣定價:58 元
定價
:NT$ 348 元
優惠價
87303
絕版無法訂購
商品簡介
名人/編輯推薦
目次
書摘/試閱

商品簡介

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

名人/編輯推薦

《CAD應用程序開發詳解:Visual C++與OpenGL綜合應用》適合從事圖形和CAD軟件開發的技術人員,以及具有一定Visual C++基礎的大專院校相關專業學生閱讀。

目次

第1章 三維CAD軟件的系統框架分析
1.1 關於微軟基礎類MFC
1.2 MFC應用程序的文檔/視圖結構
1.2.1 文檔/視圖結構概述
1.2.2 文檔與多個視圖的關聯
1.2.3 文檔模板及主要組成類
1.3 實例分析:三維CAD模型瀏覽軟件STLViewer
1.4 STLViewer的程序框架
1.5 STLViewer中類的層次設計及軟件模塊結構劃分
1.6 建立和使用動態鏈接庫
1.6.1 動態鏈接庫的基本概念
1.6.2 基於MFC的動態鏈接庫
1.6.3 查看執行程序EXE與DLL庫的層次關係
附:本章相關程序使用說明

第2章 矢量計算工具與幾何計算類庫設計
2.1 矢量運算概述
2.1.1 點
2.1.2 矢量
2.1.3 齊次坐標與齊次變換矩陣
2.2 設計點、矢量和齊次變換矩陣類
2.2.1 點類CPoint3D
2.2.2 矢量類CVector3D
2.2.3 變換矩陣類CMatrix3D
2.3 三維圖形的幾何變換
2.3.1 三維齊次變換矩陣
2.3.2 平移變換
2.3.3 旋轉變換/繞空間任意軸的旋轉變換函數的實現
2.3.4 幾何縮放
2.3.5 對稱變換/沿空間任意平面的對稱變換函數的實現
2.4 矢量計算及其工具函數集設計
2.4.1 判斷兩個空間矢量是否平行
2.4.2 計算兩個矢量的夾角
2.4.3 計算三角面片的面積
2.4.4 正交投影及點到直線之間的距離計算
2.4.5 直線求交
2.4.6 創建過平面三個點的圓
2.5 設計幾何基本工具庫GeomCalc.dll
2.5.1 GeomCalc.dll中的輸出類與輸出函數
2.5.2 創建幾何基本工具庫GeomCalc.dll的步驟
2.5.3 使用GeomCalc.dll
2.6 有關源程序代碼
2.6.1 文件CadBase.h
2.6.2 文件CadBase.cpp
2.6.3 文件CadBase1.cpp
附:本章相關程序及使用說明

第3章 創建基於MFC的OpenGL Windows程序
3.1 OpenGL概述
3.2 在Windows環境下使用OpenGL
3.2.1 OpenGL的函數庫
3.2.2 獲取與安裝OpenGL
3.2.3 OpenGL與GDI
3.2.4 渲染場境
3.2.5 像素格式
3.3 OpenGL MFC應用程序創建實例
3.3.1 創建一個應用程序框架
3.3.2 修改視類CGLView
3.3.3 使用OpenGL的雙緩存技術為應用程序增加動畫效果
3.4 程序清單
3.4.1 文件GLView.h
3.4.2 文件GLView.cpp
附:本章相關程序使用說明

第4章 設計封裝OpenGL功能的C++類
4.1 封裝OpenGL的C++類的設計
4.2 照相機類GCamera的設計
4.2.1 視點坐標系和視圖變換
4.2.2 投影變換與視景體
4.2.3 視口變換
4.2.4 設計照相機類GCamera
4.3 類COpenGLDC
4.4 修改類CGLView
4.5 運行應用程序
4.6 源程序清單
4.6.1 類GCamera的聲明代碼
4.6.2 類GCamera的實現代碼
4.6.3 類COpenGLDC的聲明代碼
4.6.4 類COpenGLDC的實現代碼
4.6.5 類CGLView的聲明代碼
4.6.6 類CGLView的實現代碼
附:本章相關程序使用說明

第5章 設計基於OpenGL的CAD圖形工具庫
5.1 創建動態鏈接庫glContext.dll
5.2 照相機類GCamera的功能增強
5.2.1 選擇典型的觀察視圖
5.2.2 景物平移
5.2.3 景物縮放
5.2.4 使用OpenGL的選擇模式
5.3 模型真實感渲染與OpenGL光照設置
5.3.1 光照的組成
5.3.2 定義OpenGL的光源
5.3.3 物體材質
5.3.4 單面光照與雙面光照
5.4 類COpenGLDC功能的增強
5.4.1 實現和Windows窗口的關聯
5.4.2 有關光源的操作
5.4.3 有關顏色的操作
5.4.4 圖形繪製函數
5.4.5 選擇模式
5.5 增加類CGLView中的功能
5.6 glContext類的輸出和調用
5.7 源程序清單
5.7.1 文件Camera.h(類GCamera)
5.7.2 文件Camera.cpp(類GCamera)
5.7.3 文件OpenGLDC.h(類COpenGLDC、CGLView)
5.7.4 文件OpenGLDC.cpp(類OpenGLDC)
5.7.5 文件 GLView.cpp(類CGLView)
附:本章相關程序使用說明

第6章 設計幾何內核模塊
6.1 CAD實體模型的常用表示方法
6.1.1 邊界表示法與體素構造法簡介
6.1.2 多邊形網格實體建模的概念
6.1.3 立體光造型(STL)文件格式
6.2 幾何對象類的設計
6.2.1 類的層次設計
6.2.2 幾何對象基本類CEntity
6.2.3 三角形面片對象類CTriChip
6.2.4 STL幾何模型類CSTLModel
6.2.5 高級幾何模型類CPart
6.3 串行化(Serialize)實現文檔存取功能
6.3.1 為什麼要使用串行化
6.3.2 CArchive類
6.3.3 串行化類的設計步驟
6.3.4 CObArray的Serialize()函數
6.3.5 應用程序的文檔串行化實例剖析
6.4 利用多態性實現CAD模型的繪製
6.4.1 虛擬函數與多態性
6.4.2 利用多態性統一CAD元素的繪製接口
6.4.3 純虛擬函數
6.4.4 實現CPart模型的OpenGL顯示
6.5 建立幾何內核庫GeomKernel.dll
6.6 程序清單
6.6.1 文件Entity.h
6.6.2 文件Entity.cpp
附:本章相關程序使用說明

第7章 CAD應用程序的模塊化實現
7.1 網格模型可視化程序STLViewer的解決方案
7.1.1 網格模型可視化程序STLViewer的模塊結構
7.1.2 創建應用程序的解決方案
7.1.3 為解決方案配置與路徑
7.2 設計應用程序框架
7.2.1 增加界面資源
7.2.2 修改框架類CMainFrame
7.2.3 修改文檔類CSTLViewerDoc
7.2.4 修改視圖類CSTLViewerView
7.3 運行STLViewer.exe
7.3.1 輸入STL模型
7.3.2 存儲STLViewer自己的文檔(*.mdl)
7.3.3 模型顯示縮放
7.3.4 使用鍵盤平移場景
7.3.5 模型視圖切換
7.3.6 模型著色模式切換
7.4 源程序清單
7.4.1 文件MainFrm.h
7.4.2 文件MainFrm.cpp
7.4.3 文件STLViewerDoc.h
7.4.4 文件STLViewerDoc.cpp
7.4.5 文件STLViewerView.h
7.4.6 文件STLViewerView.cpp
附:本章相關程序使用說明

第8章 曲線和曲面的OpenGL繪製及類設計
8.1 關於曲面造型技術
8.2曲線和曲面的參數表示
8.2.1 曲線的非參數表示
8.2.2 曲線的參數表示
8.2.3 插值與逼近
8.3 曲線的樣條描述
8.3.1 參數樣條曲線的基本概念
8.3.2 Bezier曲線、曲面的數學表示
8.3.3 使用OpenGL繪製Bezier曲線
8.3.4 使用OpenGL繪製Bezier曲面
8.3.5 NURBS曲線的數學表示
8.3.6 使用OpenGL繪製NURBS曲線
8.3.7 使用OpenGL繪製NURBS曲面
8.4 在應用程序中集成曲線和曲面功能
8.4.1 添加Bezier曲線功能
8.4.2 添加Bezier曲面功能
…….

書摘/試閱



GCamera的功能類似于與一個照相機,可稱之為照相機類。GCamera中定義了視口大小、投影變換和一個視點的位置和觀察方向。這如同使用一架相機取景,使用者需要確定相機的位置和角度、取景范圍,最后才將景物投影于膠片上的過程。這些操作實際上定義了OpenGL中一系列的變換。在三維空間中,由于變換是圖形制作和顯示環節中最關鍵的問題之一,物體擺放的位置、方向以及動畫的實現都依靠變換來實現。通過變換,OpenGL將三維對象投影到二維屏幕上。同時,OpenGL中的變換還使得用戶可以對圖形進行平移、旋轉和縮放。這些變換分別通過對視點變換、模型變換、投影變換和視口變換等操作來最終實現。GCamera就是這樣一個定義和操作變換的類。具體到CAD應用中,視圖的放大、縮小、旋轉、平移以及在三維空間中的導航(Navigaition)的實現,都歸結于對變換的操作。
COpenGLDC作為一個封裝0penGL功能的C++類,封裝了在MFC下OpenGL的環境設置,即一個渲染場境(Rendering Context),以及圖形繪制的相關函數。它的內容包括:OpenGL和Windows窗口的關聯、光照和顏色、取景操作、場景繪制等幾方面。當然,可以根據不同的應用需要在類COpenGLDC中增加新的內容,這一點在本書第5章中還將具體論述。COpenGLDC中包含了一個GCamera的對象,用于取景操作。對OpenGL的操作可在類COpenGLDC中實現。因而在MFC的窗口類插入一個COpenGLDC的對象,并使它與窗口關聯,就可以使用COpenGLDC進行對OpenGL的操作和圖形繪制。
和上一章中創建的CGLView不同的是,這里的CGLView把與OpenGL相關的代碼分離了出來,在類中包括了一個COpenGLDC的對象,與OpenGL相關的操作通過對COpenGLDC的調用予以實現。作為一個視類,CGLView本身的代碼將集中于處理和分發用戶和視圖窗口的交互信息,如對視圖的放大、縮小、視角的變換、旋轉、平移以及鼠標的拖動和物體的撿取等操作。
這樣劃分的優點在于代碼更具有獨立性,能夠提高代碼的重復利用率,也便于對類進行維護和功能擴充。下面將具體介紹這幾個類的設計與實現,通過這幾個類的設計,也可以對OpenGL的一些相關概念有一個深入的了解。

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 303
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區