目录 1
第1章 计算机图形学概述 1
1.1 计算机图形学及其研究内容 1
1.1.1 计算机图形学 1
1.1.2 计算机图形学的主要研究内容 5
1.2 计算机图形学的相关领域和学科 7
1.3 计算机图形学的发展 8
1.3.1 计算机图形学的发展简史 8
1.3.2 硬件设备的发展 9
1.3.3 图形软件的发展及软件标准的形成 10
1.4 计算机图形学的主要应用领域 11
1.5 计算机图形学当前的研究动态 20
1.5.1 真实感图形显示 20
1.5.2 人机交互技术 22
1.5.3 计算机动画 22
1.5.4 与计算机网络技术的结合 24
1.5.5 科学计算可视化 24
1.5.6 虚拟现实 26
1.5.7 地理信息系统 27
1.5.8 并行图形处理 28
1.5.9 图形图像技术的融合 28
习题 28
2.1 交互式图形系统及其组成 30
第2章 交互式图形系统 30
2.2 图形输入/输出设备 31
2.2.1 图形输入设备 31
2.2.2 图形绘制设备 37
2.3 图形显示设备 38
2.3.1 阴极射线管(CRT) 38
2.3.2 彩色CRT 39
2.3.3 随机扫描式图形显示器 41
2.3.4 光栅扫描式图形显示器 41
2.3.5 液晶显示器 43
2.3.6 显示适配器 45
习题 46
第3章 基本图形元素生成算法 47
3.1 直线的扫描转换 47
3.1.1 DDA算法 47
3.1.2 中点画线法 48
3.1.3 Bresenham算法 50
3.2 圆和椭圆的扫描转换 51
3.2.1 圆的扫描转换 51
3.2.2 椭圆的扫描转换 56
3.3 区域填充 58
3.3.1 多边形区域填充 58
3.3.2 边填充算法 61
3.3.3 种子填充算法 62
3.4.1 字符生成的方法 64
3.4 字符的生成 64
3.4.2 点阵字符 65
3.5 图形裁剪 67
3.5.1 直线段裁剪 67
3.5.2 多边形裁剪 72
3.6 属性控制 73
3.6.1 线型与线宽 73
3.6.2 字符属性 75
3.6.3 区域填充属性 75
3.7 反走样 76
3.7.1 过取样 76
3.7.2 简单的区域取样 77
3.7.3 加权区域取样 78
习题 81
第4章 曲线和曲面 82
4.1 曲线和曲面的基础知识 82
4.1.1 曲线及其参数表示 82
4.1.2 曲面及其参数表示 89
4.2 常用参数曲线 93
4.2.1 Bezier曲线 93
42.2 B样条曲线 99
4.2.3 其它曲线 106
4.3 常用参数曲面 108
4.3.1 Coons曲面 108
4.3.2 Bézier曲面 109
4.3.3 B样条曲面 110
4.3.4 非均匀有理B样条(NURBS)曲面 110
习题 112
第5章 图形变换 113
5.1 图形变换基础 114
5.1.1 齐次坐标 114
5.1.2 坐标系 117
5.2 二维图形变换 119
5.2.1 二维图形几何变换的矩阵 119
5.2.2 二维图形的基本几何变换 120
5.2.3 平面图形的复合变换(级联变换) 126
5.2.4 平面图形变换举例 127
5.3 三维图形变换 128
5.3.1 三维平移变换 128
5.3.2 三维比例变换 129
5.3.3 三维反射变换 131
5.3.4 三维错切变换 132
5.3.5 三维旋转变换 133
5.3.6 三维复合变换 135
5.3.7 三维图形变换程序实例 137
5.4 窗口—视区变换 138
5.4.1 基本概念 138
5.4.2 窗口—视区变换 139
5.4.3 窗口—规格化设备坐标—视区变换 142
5.4.4 窗口到视区的变换过程 143
5.5.1 投影变换及其分类 144
5.5 正投影三视图变换 144
5.5.2 三视图变换 145
5.5.3 三视图变换的实例 147
5.6 轴测投影变换 148
5.6.1 正轴测投影 148
5.6.2 斜轴测投影 150
5.7 透视投影与视图变换 151
5.7.1 透视投影 151
5.7.2 视图变换 154
5.7.3 视图变换举例 161
5.8.1 圆锥曲线的几何变换 164
5.8 参数图形的几何变换 164
5.8.2 参数曲线、曲面的几何变换 165
5.9 图形变换实例 168
习题 171
第6章 几何造型 174
6.1 形体在计算机中的表示 174
6.1.1 几何模型 174
6.1.2 形体表示 176
6.2 边界表示 180
6.2.1 三维形体的曲面模型 180
6.2.2 形体的边界表示 180
6.2.3 欧拉操作 182
6.2.4 集合运算 183
6.3 其它造型方法 185
6.3.1 参数化造型 185
6.3.2 特征造型 187
6.3.3 分数维(Fraetal)造型 188
6.3.4 粒子系统 189
6.3.5 从二维正投影图构造三维形体 189
习题 190
第7章 立体真实感图形 191
7.1 消除隐藏线 191
7.1.1 概述 191
7.1.2 凸多面体的隐藏线消除 192
7.1.3 凹多面体的隐藏线消除 196
7.2 消除隐藏面 197
7.2.1 画家算法 197
7.2.2 Z缓冲区(Z-Buffer)算法 199
7.2.3 扫描线Z-Buffer算法 203
7.2.4 区间扫描线算法 205
7.2.5 区域采样(Warnock)算法 206
7.2.6 光线投射算法 208
7.3 光照明模型 209
7.3.1 光照明模型的基础知识 209
7.3.2 Phong光照明模型 210
7.3.3 增量式光照明模型 212
*7.3.4 局部光照明模型 214
*7.3.5 光透射模型 217
*7.4 颜色模型 221
7.4.1 色度图 221
7.4.2 常用的颜色模型 225
7.4.3 颜色的选择插值和复制 230
*7.5 纹理 232
7.5.1 纹理的定义 232
7.5.2 纹理映射 232
7.6 科学计算可视化 234
7.6.1 数据场 235
7.6.2 体绘制技术的基本原理 235
7.6.3 以图像空间为序的体绘制算法 236
习题 237
第8章 交互技术与用户接口 238
8.1 计算机图形软件标准化 238
8.1.1 图形软件标准 238
8.1.2 常用图形软件标准简介 240
8.2 用户接口 243
8.2.1 交互式图形系统的逻辑构成 243
8.2.2 用户接口的常用形式及其设计原则 244
8.3 交互任务和交互技术 248
8.3.1 交互任务 248
8.3.2 交互技术 249
8.4.1 OpenGL基础 255
8.4 交互式图形程序库OpenGL 255
8.4.2 利用OpenGL绘制基本几何对象 258
8.4.3 基于OpenGL真实感图形生成技术简介 260
8.5 构造一个简单的交互式图形系统 265
8.5.1 交互式图形系统的设计原则 265
8.5.2 交互式图形系统的功能 266
8.5.3 面向对象的程序设计方法 266
习题 267
第9章 简单交互式图形系统的设计与实现 268
9.1 系统简介 268
9.1.1 系统用户界面 268
9.2.1 图形编程的基础知识 269
9.2 系统设计与实现 269
9.1.2 系统结构 269
9.2.2 程序设计 270
习题 280
附录 用VC++开发交互式图形系统 281
一、概述 281
二、Visual C++6.0用户界面 281
三、框架和文档—视图结构 282
四、编程基本流程 284
五、绘图 285
习题 288
参考文献 289