书籍详情

CAD应用程序开发详解:Visual C++与OpenGL综合应用

CAD应用程序开发详解:Visual C++与OpenGL综合应用

作者:王清辉

出版社:电子工业出版社

出版时间:2012-09-01

ISBN:9787121179709

定价:¥58.00

购买这本书可以去
内容简介
  《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综合应用》作者简介
目录
目 录
第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.
猜您喜欢

读书导航