第1章 导论 1
1.1 计算机图形学的应用领域 1
1.1.1 计算机辅助设计 1
1.1.2 计算机艺术 1
1.1.3 虚拟现实 3
1.1.4 计算机辅助教学 3
1.2 计算机图形学的概念 4
1.3 计算机图形学的相关学科 5
1.4 计算机图形学的确立和发展 5
1.5 图形显示器的发展及其工作原理 7
1.5.1 阴极射线管 7
1.5.2 随机扫描显示器 8
1.5.3 直视储存管显示器 8
1.5.4 光栅扫描显示器 9
1.5.5 液晶显示器 13
1.5.6 等离子显示器 15
1.5.7 三维显示器 15
1.6 图形软件标准的形成 18
1.7 计算机图形学的最新技术 18
1.7.1 交互技术 18
1.7.2 造型技术 18
1.7.3 真实感图形显示技术 19
1.8 小结 19
习题1 19
第2章 Visual C++ 6.0绘图基础 21
2.1 面向对象程序设计基础 21
2.1.1 类和对象 21
2.1.2 构造函数和析构函数 22
2.1.3 对象的动态建立和释放 24
2.1.4 继承与派生 25
2.2 MFC上机操作步骤 28
2.3 基本绘图函数 31
2.3.1 CDC类结构和GDI对象 32
2.3.2 映射模式 33
2.3.3 CDC类的主要绘图成员函数 34
2.3.4 设备上下文的调用和释放 50
2.3.5 VC++绘制图形的几种方法 51
2.4 小结 52
习题2 52
第3章 基本图形的扫描转换 55
3.1 直线的扫描转换 55
3.1.1 算法原理 56
3.1.2 构造中点偏差判别式 56
3.1.3 递推公式 57
3.2 圆的扫描转换 57
3.2.1 算法原理 58
3.2.2 构造中点偏差判别式 59
3.2.3 递推公式 60
3.3 椭圆的扫描转换 60
3.3.1 算法原理 61
3.3.2 构造上半部分Ⅰ中点偏差判别式 62
3.3.3 上半部分Ⅰ的递推公式 62
3.3.4 构造下半部分Ⅱ中点偏差判别式 64
3.3.5 下半部分Ⅱ的递推公式 64
3.4 反走样技术 66
3.5 直线距离加权反走样算法 67
3.5.1 算法原理 67
3.5.2 构造距离判别式 69
3.5.3 计算机化 69
3.6 小结 69
习题3 69
第4章 多边形填充 72
4.1 实面积图形的概念 72
4.1.1 多边形的定义 73
4.1.2 多边形的表示 73
4.1.3 多边形的填充 74
4.1.4 区域填充 74
4.2 有效边表填充算法 75
4.2.1 填充原理 75
4.2.2 边界像素的处理原则 75
4.2.3 有效边和有效边表 76
4.2.4 边表 79
4.3 边缘填充算法 80
4.3.1 填充原理 80
4.3.2 填充过程 80
4.4 区域填充算法 82
4.4.1 填充原理 82
4.4.2 四邻接点和八邻接点 82
4.4.3 四连通域和八连通域 83
4.4.4 四邻接点填充算法和八邻接点填充算法 84
4.5 小结 85
习题4 85
第5章 二维变换和裁剪 89
5.1 图形几何变换基础 89
5.1.1 规范化齐次坐标 89
5.1.2 矩阵相乘 89
5.1.3 二维变换矩阵 90
5.1.4 二维几何变换 90
5.2 二维图形基本几何变换矩阵 91
5.2.1 平移变换矩阵 91
5.2.2 比例变换矩阵 91
5.2.3 旋转变换矩阵 92
5.2.4 反射变换矩阵 93
5.2.5 错切变换矩阵 94
5.3 二维复合变换 95
5.3.1 复合变换原理 95
5.3.2 相对于任一参考点的二维几何变换 95
5.3.3 相对于任意方向的二维几何变换 96
5.4 二维图形裁剪 98
5.4.1 图形学中常用的坐标系 98
5.4.2 窗口和视区及窗视变换 99
5.4.3 窗视变换矩阵 100
5.5 Cohen-Sutherland直线裁剪算法 101
5.5.1 编码原理 101
5.5.2 裁剪步骤 102
5.5.3 交点计算公式 102
5.6 中点分割直线裁剪算法 103
5.6.1 中点分割直线裁剪算法原理 103
5.6.2 中点计算公式 103
5.7 梁友栋—Barsky直线裁剪算法 103
5.7.1 梁友栋算法原理 103
5.7.2 算法分析 104
5.7.3 算法的几何意义 104
5.8 小结 106
习题5 106
第6章 三维变换和投影 108
6.1 三维几何变换 108
6.1.1 三维变换矩阵 108
6.1.2 三维几何变换 108
6.2 三维基本几何变换矩阵 109
6.2.1 平移变换 109
6.2.2 比例变换 109
6.2.3 旋转变换 110
6.2.4 反射变换 111
6.2.5 错切变换 112
6.3 三维复合变换 113
6.4 投影变换 115
6.4.1 三视图 115
6.4.2 斜等侧图 118
6.5 透视变换 120
6.5.1 透视变换坐标系 120
6.5.2 坐标系变换 121
6.5.3 用户坐标系到观察坐标系的变换 122
6.5.4 观察坐标系到屏幕坐标系的变换 124
6.5.5 透视投影分类 125
6.6 小结 127
习题6 128
第7章 自由曲线和曲面 130
7.1 基本概念 130
7.1.1 样条曲线曲面 130
7.1.2 曲线曲面的表示形式 130
7.1.3 拟合和逼近 131
7.1.4 连续性条件 131
7.2 三次参数样条曲线 132
7.2.1 参数样条曲线定义 132
7.2.2 系数求解 133
7.2.3 边界条件 133
7.3 Hermite样条曲线 135
7.4 Bezier曲线 137
7.4.1 Bezier曲线的定义 137
7.4.2 Bezier曲线的性质 139
7.4.3 Bezier曲线的可分割性 139
7.5 Bezier曲面 141
7.5.1 Bezier曲面的定义 141
7.5.2 双三次Bezier曲面的定义 141
7.6 B样条曲线 142
7.6.1 B样条曲线的定义 143
7.6.2 二次B样条曲线 143
7.6.3 三次B样条曲线 144
7.6.4 B样条曲线的性质 146
7.6.5 构造特殊的三次B样条曲线的技巧 148
7.7 B样条曲面 149
7.7.1 B样条曲面的定义 149
7.7.2 双三次B样条曲面的定义 149
7.7.3 双三次B样条曲面的连续性 150
7.8 小结 152
习题7 152
第8章 分形几何 156
8.1 分形和分维 156
8.1.1 分形的诞生 156
8.1.2 分形的基本特征 157
8.1.3 分形的定义 158
8.1.4 分形维数的定义 158
8.2 递归模型 160
8.2.1 Cantor集 160
8.2.2 Koch曲线 161
8.2.3 Peano-Hilbert曲线 162
8.2.4 Sierpinski垫片、地毯和海绵 164
8.2.5 C字曲线 168
8.2.6 Caley树 168
8.3 L系统模型 169
8.3.1 L系统文法 169
8.3.2 Koch曲线 170
8.3.3 分形草 171
8.3.4 Peano-Hilbert曲线 171
8.3.5 分形灌木丛 173
8.4 IFS迭代函数系统模型 174
8.4.1 仿射变换 174
8.4.2 IFS 175
8.4.3 Koch曲线 178
8.4.4 Sierpinski垫片 180
8.4.5 枫叶生成 182
8.5 小结 183
习题8 183
第9章 动态消隐 187
9.1 图形的数据结构 187
9.1.1 图形的几何信息和拓扑信息 187
9.1.2 基本图形的数据结构 187
9.1.3 立体表示模型 188
9.2 消隐算法分类 190
9.3 隐线算法 190
9.3.1 凸多面体消隐算法 190
9.3.2 曲面体消隐算法 192
9.4 隐面算法 194
9.4.1 Z-Buffer算法 194
9.4.2 画家算法 197
9.5 小结 198
习题9 198
第10章 真实感图形 201
10.1 颜色模型 201
10.1.1 基本概念 201
10.1.2 RGB颜色模型 202
10.1.3 Gouraud颜色渐变 203
10.2 材质模型和光照模型 205
10.2.1 物体的材质 205
10.2.2 环境光模型 206
10.2.3 漫反射光模型 206
10.2.4 镜面反射光模型 207
10.2.5 光强的衰减 208
10.3 纹理映射 209
10.3.1 纹理定义 209
10.3.2 纹理映射 210
10.4 OpenGL简介 210
10.4.1 案例效果 210
10.4.2 TestView.h文件 210
10.4.3 TestView.cpp文件 213
10.4.4 程序说明 220
10.5 小结 222
习题10 222
附录A 配套实践教程的案例设置及与本书的对应关系 225
参考文献 227