当前位置:首页 > 工业技术
CAD应用程序开发详解  Visual C++与OpenGL综合应用

CAD应用程序开发详解 Visual C++与OpenGL综合应用PDF格式文档图书下载

工业技术

  • 购买点数:14
  • 作 者:王清辉 李静蓉编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121179709
  • 标注页数:422 页
  • PDF页数:434 页
图书介绍:本书系统地阐述了在MFC与OpenGL API的集成开发环境下,用面向对象的技术开发三维CAD软件的有关知识与方法,包括:总体程序框架的分析与设计、功能模块的划分,以及相关DLL库的开发与使用、CAD基础几何类库的开发、在MFC环境下使用OpenGL进行图形绘制、开发面向CAD应用程序的OpenGL通用绘图类、使用面向对象技术设计CAD软件的几何内核、CAD软件的图形交互、软件界面设计等。

查看更多关于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文件CadBasel.cpp 91

附:本章相关程序使用说明 96

第3章 创建基于M FC的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创建动态链接库gIContext.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

查看更多关于CAD应用程序开发详解 Visual C++与OpenGL综合应用的内容

返回顶部