前言页 1
第1章 绪论 1
第1节 概述 1
1.1.1 计算机图形学的概念 1
1.1.2 计算机图形学的研究内容 1
1.1.3 计算机图形学与图像处理的关系 2
第2节 计算机图形学的发展 2
1.2.1 计算机图形学的发展简史 2
1.2.2 计算机图形学的发展动向 4
第3节 计算机图形学的应用 6
第4节 计算机图形系统 9
1.4.1 计算机图形系统硬件 9
1.4.2 计算机图形系统软件 10
第5节 计算机图形标准 10
习题 11
第2章 交互式图形软件设计 12
第1节 Visual C++6.0开发环境和开发工具 12
2.1.1 概述 12
2.1.2 操作界面 12
2.1.3 MFC类库简介 13
第2节 应用程序基本框架 15
2.2.1 使用AppWizard生成应用程序的框架 15
2.2.2 常用的MFC类简介 18
第3节 图形用户界面设计 20
2.3.1 资源编辑器 20
2.3.2 资源符号 20
2.3.3 对话编辑器 21
2.3.4 菜单编辑器 22
2.3.5 图形编辑器 23
第4节 消息处理与交互式绘图 24
2.4.1 消息处理和消息映射的概念 25
2.4.2 消息种类 25
2.4.3 消息处理函数 26
2.4.4 消息映射 27
2.4.5 消息发送和接收 28
2.4.6 用户界面对象的更新 28
2.4.7 ClassWizard的使用 29
第5节 VC图形程序库 31
2.5.1 绘图工具选择函数 31
2.5.2 坐标系统设置与转换函数 34
2.5.3 绘图模式与背景设置函数 36
2.5.4 绘图函数 37
2.5.5 区域填充函数 39
2.6.2 在屏幕上画图 40
2.6.1 建立绘图程序框架 40
第6节 一个简单绘图程序实例 40
2.6.3 定义直线类并在文档类中保存直线 43
2.6.4 实现Undo功能 46
2.6.5 实现文件保存和打开 47
2.6.6 滚动处理 49
习题 51
第3章 基本图形生成原理 52
第1节 直线的生成 52
3.1.1 数值微分法 53
3.1.2 中点画线法 55
3.1.3 Bresenham画线算法 56
第2节 圆与椭圆的生成 58
3.2.1 圆的特性 58
3.2.2 中点画圆法 59
3.2.3 Bresenham画圆算法 61
3.2.4 椭圆的生成算法 64
3.3.1 有序边表填充算法 67
第3节 区域填充 67
3.3.2 种子填充算法 73
3.3.3 圆和椭圆的填充 74
3.3.4 图案填充 74
第4节 影线填充 76
3.4.1 影线的计算 77
3.4.2 影线与轮廓边求交 78
3.4.3 对交点排序并绘出影线 79
3.4.4 奇异点处理 80
3.4.5 影线源程序 80
第5节 线宽与线型的处理 82
3.5.1 直线线宽的处理 82
3.5.2 圆弧线宽的处理 84
3.6.1 改造DrawLine程序 85
3.5.3 线型的处理 85
第6节 编程案例 85
3.6.2 自定义CGraph类及其绘图函数 89
3.6.3 修改视图类,支持屏幕绘图 91
3.6.4 线宽处理 93
习题 94
第4章 图形几何变换 95
第1节 几何变换的方法 95
4.1.1 图形的基本要素及其表示方法 95
4.1.2 点的变换 95
第2节 二维基本变换 95
4.2.1 比例变换 96
4.2.2 对称变换 97
4.2.3 错切变换 98
4.2.4 旋转变换 99
4.2.5 平移变换与齐次坐标 100
4.2.6 小结 102
第3节 二维组合变换 103
4.3.1 绕任意点旋转变换 103
4.3.2 对任意直线的对称变换 104
第4节 三维基本变换 105
4.4.1 三维基本变换矩阵 105
4.4.2 比例变换 106
4.4.3 对称变换 107
4.4.4 错切变换 108
4.4.5 旋转变换 110
4.4.6 平移变换 111
第5节 三维组合变换 111
第6节 参数图形的几何变换 112
4.6.1 圆锥曲线的几何变换 112
4.6.2 参数曲线、曲面的几何变换 113
第7节 编程案例 118
4.7.1 用AppWizard生成应用程序框架 118
4.7.2 用资源编辑器生成菜单和对话框 118
4.7.3 用ClassWizard映射菜单消息,为对话框定义对话类 120
4.7.4 添加源代码 121
习题 126
第5章 图形显示 127
第1节 窗口视区变换 127
5.1.1 坐标系 127
5.1.2 窗口与视区 128
5.1.3 窗口-视区变换 129
第2节 投影变换 130
5.2.1 平行投影变换 131
5.2.2 透视投影变换 138
5.3.1 世界坐标系和观察坐标系 142
第3节 视向变换 142
5.3.2 视向变换矩阵 143
第4节 二维裁剪 145
5.4.1 点的裁剪 146
5.4.2 直线段的裁剪 146
5.4.3 多边形的裁剪 152
第5节 三维裁剪 155
第6节 编程案例 156
5.6.1 增加投影变换和直线裁剪菜单 156
5.6.2 进行菜单命令的消息映射 157
5.6.3 增加源代码 157
习题 165
第6章 曲线 166
第1节 概述 166
6.1.1 曲线的三种坐标表示法 166
6.1.2 参数样条曲线的常用术语 169
第2节 抛物样条曲线 170
6.2.1 过三点定义一段抛物线 170
6.2.2 抛物线加权合成 172
6.2.3 抛物样条曲线的端点条件 174
6.2.4 抛物样条曲线的性质 176
6.2.5 绘图程序 177
第3节 三次插值样条曲线 178
6.3.1 分段三次参数样条曲线的数学表达式 178
6.3.2 连续三次参数样条曲线的表达式 179
6.3.3 解题过程 182
第4节 贝塞尔曲线 184
6.4.1 贝塞尔曲线的数学表达式 184
6.4.2 二次贝塞尔曲线 185
6.4.3 三次贝塞尔曲线 186
6.4.5 贝塞尔曲线生成算法 187
6.4.4 反算Bezier曲线控制点 187
6.5.1 从贝塞尔到B样条 188
第5节 B样条曲线 188
6.5.2 B样条曲线的数学表达式 189
6.5.3 二次B样条曲线 189
6.5.4 三次B样条曲线 191
6.5.5 反求B样条曲线的确控制点及其端点性质 192
6.5.6 三次B样条曲线的特殊处理 194
第6节 编程案例 194
6.6.1 增加菜单及其消息映射 194
6.6.2 添加画抛物样条曲线和贝塞尔曲线的函数定义 195
6.6.3 添加调用parabola函数和bezier函数的代码 197
习题 199
第1节 欧氏几何造型 200
7.1.1 几何形体的组成和特征 200
第7章 三维几何造型 200
7.1.2 欧氏几何造型的三种模式 202
7.1.3 三维实体表示方法 205
7.1.4 求交运算 207
7.1.5 布尔运算 216
第2节 样条曲面造型 220
7.2.1 贝塞尔曲面 220
7.2.2 B样条曲面 226
第3节 分形几何造型 230
7.3.1 分形几何造型的基本概念 230
7.3.2 自相似性和维数 232
7.3.3 分形的应用领域 234
7.3.4 典型分形曲线集 235
第4节 编程案例 247
7.4.1 建立程序框架并进行OpenGL初始化 247
7.4.2 创建绘图菜单并进行消息映射 252
7.4.3 编写具体绘图函数代码 253
习题 260
第8章 真实感图形 262
第1节 消除隐藏线 262
8.1.1 平面体的消隐处理 262
8.1.2 曲面体的消隐处理 271
第2节 消除隐藏面 287
8.2.1 基本检测 288
8.2.2 画家算法 290
8.2.3 深度缓冲器算法(Z缓冲区算法) 293
8.2.4 扫描线算法 294
8.2.5 区域细分算法 295
第3节 明暗效应 296
8.3.1 光照的基本模型 297
8.3.2 明暗处理方法 300
8.3.3 半色调明暗处理技术 302
8.3.4 真实感处理的源程序 304
第4节 颜色模型 308
8.4.1 基本概念 308
8.4.2 CIE色度图 309
8.4.3 常用的颜色模型 311
8.4.4 颜色的选择插值和复制 314
第5节 纹理图案映射 316
8.5.1 确定映射关系 316
8.5.2 平面图案的确矢量化处理与离散细分 317
8.5.3 映射效果的三维显示 318
习题 324
附录A 第2、第3章编程案例DrawLine的VC源程序 326
附录A.1 应用程序类的头文件 326
附录 326
附录A.2 应用程序类的实现文件 327
附录A.3 文档类的头文件 330
附录A.4 文档类的实现文件 331
附录A.5 视图类的头文件 335
附录A.6 视图类的实现文件 337
附录A.7 主边框窗口类的头文件 341
附录A.8 主边框窗口类的实现文件 343
附录A.9 自定义CGraph类的头文件 345
附录A.10 自定义CGraph类的实现文件 345
附录B 第4~第6章编程案例Chap4的VC源程序 351
附录B.1 应用程序类的头文件 351
附录B.2 应用程序类的实现文件 352
附录B.3 文档类的头文件 355
附录B.4 文档类的实现文件 356
附录B.5 视图类的头文件 357
附录B.6 视图类的实现文件 359
附录B.7 主边框窗口类的头文件 373
附录B.8 主边框窗口类的实现文件 374
附录B.9 比例变换对话框类的头文件 376
附录B.10 比例变换对话框类的实现文件 377
附录C 第7章OpenGL编程案例Example1的VC源程序 378
附录C.1 应用程序类的头文件 378
附录C.2 应用程序类的实现文件 379
附录C.3 文档类的头文件 382
附录C.4 文档类的实现文件 383
附录C.5 视图类的头文件 385
附录C.6 视图类的实现文件 386
附录C.7 主边框窗口类的头文件 394
附录C.8 主边框窗口类的实现文件 395
参考文献 398