第1章 计算机图形学综述 1
1.1 计算机辅助设计 1
1.2 图示图形学 4
1.3 计算机艺术 6
1.4 娱乐 8
1.5 教学与培训 9
1.6 可视化 12
1.7 图像处理 16
1.8 图形用户界面 17
第2章 图形系统综述 18
2.1 视频显示设备 18
2.1.1 刷新式CRT 18
2.1.2 光栅扫描显示器 21
2.1.3 随机扫描显示器 22
2.1.4 彩色CRT监视器 23
2.1.5 直视存储管 25
2.1.6 平板显示器 25
2.1.7 三维观察设备 27
2.1.8 立体感和虚拟现实系统 29
2.2 光栅扫描系统 29
2.2.1 视频控制器 29
2.2.2 光栅扫描显示处理器 31
2.3 随机扫描系统 32
2.4 图形监视器与工作站 33
2.5 输入设备 35
2.5.1 键盘 35
2.5.4 操纵杆 37
2.5.2 鼠标 37
2.5.3 跟踪球和空间球 37
2.5.5 数据手套 38
2.5.6 数字化仪 39
2.5.7 图像扫描仪 40
2.5.8 触摸板 41
2.5.9 光笔 42
2.5.10 声音系统 43
2.6 硬拷贝设备 44
2.7 图形软件 46
2.7.1 坐标表示 46
2.7.2 图形功能 47
2.7.3 软件标准 48
小结 49
2.7.4 PHIGS工作站 49
参考文献 50
练习题 50
第3章 输出图元 52
3.1 点和线 52
3.2 画线算法 53
3.2.1 DDA算法 54
3.2.2 Bresenham画线算法 56
3.2.3 并行画线算法 59
3.3 帧缓冲器的装载 61
3.4 画线函数 62
3.5 圆生成算法 63
3.5.1 圆的特性 63
3.5.2 中点圆算法 64
3.6 椭圆生成算法 68
3.6.1 椭圆的特征 68
3.6.2 中点椭圆算法 70
3.7 其他曲线 76
3.7.1 圆锥曲线 76
3.7.2 多项式和样条曲线 78
3.8 并行曲线算法 78
3.9 曲线函数 79
3.10 像素编址和物体的几何表示 80
3.10.1 屏幕网格坐标 80
3.10.2 保留显示的物体的几何特性 81
3.11 填充区域图元 82
3.11.1 扫描线多边形填充算法 83
3.11.2 内-外测试 90
3.11.3 曲线边界区域的扫描线填充 91
3.11.4 边界填充算法 91
3.11.5 泛滥填充算法 94
3.12 区域填充函数 95
3.13 单元阵列 95
3.14 字符生成 96
小结 98
参考文献 104
练习题 104
第4章 输出图元的属性 107
4.1 线属性 107
4.1.1 线型 107
4.1.2 线宽 109
4.1.3 画笔或笔刷的选择 111
4.1.4 线颜色 112
4.2 曲线属性 113
4.3 颜色和亮度等级 115
4.3.1 颜色表 116
4.3.2 灰度等级 117
4.4 区域填充属性 118
4.4.1 填充模式 118
4.4.2 图案填充 119
4.4.3 软填充 122
4.5 字符属性 123
4.5.1 文本属性 123
4.5.2 标记属性 127
4.6.1 线的束属性 128
4.6 束属性 128
4.6.2 区域填充束属性 129
4.6.3 文本的束属性 129
4.6.4 标记的束属性 129
4.7 查询函数 130
4.8 反走样 130
4.8.1 直线段的过取样 131
4.8.2 加权的像素掩模 132
4.8.3 直线段的区域取样 133
4.8.4 过滤技术 133
4.8.5 像素移相 134
4.8.6 直线亮度差的校正 134
4.8.7 对区域边界进行反走样 134
小结 137
练习题 138
参考文献 138
第5章 二维几何变换 141
5.1 基本变换 141
5.1.1 平移 141
5.1.2 旋转 142
5.1.3 缩放 144
5.2 矩阵表达式和齐次坐标 145
5.3 复合变换 147
5.3.1 平移 147
5.3.3 缩放 148
5.3.4 通用基准点旋转 148
5.3.2 旋转 148
5.3.5 通用固定点缩放 149
5.3.6 通用定向缩放 150
5.3.7 连接特性 150
5.3.8 通用复合变换和计算效率 151
5.4 其他变换 155
5.4.1 反射 156
5.4.2 错切 159
5.5 坐标系间的变换 160
5.6 仿射变换 162
5.7 变换函数 163
5.8 变换的光栅方法 164
小结 166
练习题 167
参考文献 167
第6章 二维观察 169
6.1 观察流程 169
6.2 观察参照坐标系 171
6.3 窗口到视口的坐标变换 171
6.4 二维观察函数 173
6.5 裁剪操作 174
6.6 点的裁剪 175
6.7 线段的裁剪 175
6.7.1 Cohen-Sutherland线段裁剪算法 176
6.7.2 梁友栋-Barsky线段裁剪算法 180
6.7.3 Nicholl-Lee-Nicholl线段裁剪算法 182
6.7.5 划分凹多边形 184
6.7.4 非矩形裁剪窗口的线段裁剪 184
6.8 多边形的裁剪 186
6.8.1 Sutherland-Hodgeman多边形裁剪 186
6.8.2 Weiler-Atherton算法 190
6.8.3 其他多边形的裁剪算法 191
6.9 曲线的裁剪 192
6.10 文字的裁剪 192
6.11 外部裁剪 193
小结 194
参考文献 196
练习题 196
第7章 结构和层次建模 198
7.1 结构的概念 198
7.1.1 基本结构函数 198
7.1.2 设置结构属性 199
7.2 编辑结构 200
7.2.2 设置编辑模式 201
7.2.1 结构表和元素指针 201
7.2.3 插入结构元素 202
7.2.4 替代结构元素 202
7.2.5 删除结构元素 203
7.2.6 标识结构元素 204
7.2.7 从一个结构中将元素复制到另一个结构 205
7.3 基本建模概念 205
7.3.1 模型表示 206
7.3.2 符号层次 207
7.3.3 建模软件包 208
7.4 使用结构来建立层次式模型 208
7.4.1 局部坐标和建模变换 208
7.4.3 结构层次 209
7.4.2 模型变换 209
小结 211
参考文献 211
练习题 211
第8章 图形用户界面和交互输入方法 213
8.1 用户对话 213
8.1.1 窗口和图符 213
8.1.2 适应多种熟练程度的用户 214
8.1.3 一致性 214
8.1.4 减少记忆量 214
8.1.5 回退和出错处理 215
8.1.6 反馈 215
8.2.2 定位设备 216
8.2 图形数据的输入 216
8.2.1 输入设备的逻辑分类 216
8.2.3 笔划设备 217
8.2.4 字符串设备 217
8.2.5 定值设备 217
8.2.6 选择设备 218
8.2.7 拾取设备 219
8.3 输入功能 220
8.3.1 输入模式 220
8.3.2 请求模式 221
8.3.3 请求模式下的定位和笔划输入 221
8.3.7 请求模式下的拾取输入 222
8.3.6 请求模式下的选择输入 222
8.3.5 请求模式下的定值输入 222
8.3.4 请求模式下的字符串输入 222
8.3.8 取样模式 223
8.3.9 事件模式 223
8.3.10 输入模式的并行使用 225
8.4 输入设备参数的初值 225
8.5 交互式构图技术 226
8.5.1 基本的定位方法 226
8.5.2 约束 226
8.5.3 网格 227
8.5.4 引力场 228
8.5.5 橡皮条方法 228
8.5.6 拖曳 228
8.6 虚拟现实环境 229
8.5.7 着色和绘图 229
小结 230
参考文献 231
练习题 231
第9章 三维概念 233
9.1 三维显示方法 233
9.1.1 平行投影 233
9.1.2 透视投影 234
9.1.3 深度提示 234
9.1.4 可见线面的标识 234
9.1.7 三维和立体视图 235
9.2 三维图形软件包 235
9.1.6 分解图和剖面图 235
9.1.5 表面绘制 235
第10章 三维物体的表示 237
10.1 多边形表面 237
10.1.1 多边形表 237
10.1.2 平面方程 239
10.1.3 边多形网格 241
10.2 曲线和曲面 241
10.3 二次曲面 242
10.3.1 球面 242
10.3.2 椭球面 243
10.3.3 环面 243
10.4 超二次曲面 244
10.4.1 超椭圆 244
10.4.2 超椭球面 244
10.5 柔性物体 245
10.6.1 插值和逼近样条 247
10.6 样条表示 247
10.6.2 参数连续性条件 249
10.6.3 几何连续性条件 250
10.6.4 样条描述 250
10.7 三次样条插值方法 251
10.7.1 自然三次样条 252
10.7.2 Hermite插值 252
10.7.3 Cardinal样条 255
10.7.4 Kochanek-Bartels样条 257
10.8 Bézier曲线和曲面 257
10.8.1 Bézier曲线 257
10.8.3 使用Bézier曲线的设计技术 260
10.8.2 Bézier曲线的特性 260
10.8.4 三次Bézier曲线 261
10.8.5 Bézier曲面 263
10.9 B-样条曲线和曲面 264
10.9.1 B-样条曲线 264
10.9.2 均匀的周期性B-样条曲线 266
10.9.3 三次周期性B-样条曲线 268
10.9.4 开放均匀的B-样条曲线 270
10.9.5 非均匀B-样条曲线 271
10.9.6 B-样条曲面 272
10.10 beta-样条 273
10.10.1 beta-样条连续性条件 273
10.10.2 三次周期性beta-样条曲线的矩阵表示 274
10.11 有理样条 275
10.12 两种样条表达式间的转换 277
10.13 样条曲线和曲面的显示 278
10.13.1 Homer规则 278
10.13.2 向前差分计算 279
10.13.3 细分方法 280
10.14 扫描表示 282
10.15 结构实体几何法 283
10.16 八叉树 285
10.17 BSP树 287
10.18 分形几何方法 288
10.18.2 分形分类 289
10.18.3 分形的维数 289
10.18.1 分形生成过程 289
10.18.4 确定性自相似分形几何构造 291
10.18.5 统计自相似分形的几何构造 293
10.18.6 仿射分形构造方法 294
10.18.7 随机中点位移方法 295
10.18.8 地面图控制 297
10.18.9 自平方分形 298
10.18.10 自逆分形 304
10.19 形状语法和其他过程性方法 305
10.20 微粒系统 306
10.21 基于物理的建模 307
10.22 数据集的可视化 308
10.22.1 标量场的可视化表示 308
10.22.3 张量场的可视表示 311
10.22.2 向量场的可视表示 311
10.22.4 多变量数据场的可视表示 312
小结 312
参考文献 312
练习题 313
第11章 三维几何和建模变换 315
11.1 平移 315
11.2 旋转 316
11.2.1 坐标轴旋转 316
11.2.2 一般三维旋转 319
11.2.3 四元数旋转 324
11.3 缩放 326
11.4.1 反射 327
11.4 其他变换 327
11.4.2 错切 328
11.5 复合变换 328
11.6 三维变换函数 331
11.7 建模变换和坐标变换 332
小结 333
参考文献 334
练习题 334
第12章 三维观察 336
12.1 观察流水线 336
12.2 观察坐标 337
12.2.1 指定观察平面 337
12.2.2 从世界坐标到观察坐标的变换 339
12.3 投影 342
12.3.1 平行投影 342
12.3.2 透视投影 346
12.4 观察体和一般投影变换 348
12.4.1 一般平行投影变换 352
12.4.2 一般透视投影变换 355
12.5 裁剪 357
12.5.1 规范化观察体 358
12.5.2 视口裁剪 360
12.5.3 齐次坐标裁剪 361
12.6 硬件实现 362
12.7 三维观察函数 363
小结 365
参考文献 365
练习题 365
13.2 后向面判别 367
第13章 可见面判别算法 367
13.1 可见面判别算法的分类 367
13.3 深度缓冲器算法 368
13.4 A缓冲器算法 371
13.5 扫描线算法 372
13.6 深度排序算法 373
13.7 BSP树算法 376
13.8 区域细分算法 376
13.9 八叉树算法 378
13.10 光线投射算法 381
13.11 曲面 382
13.11.2 曲面的层位线显示 383
13.12 线框算法 383
13.11.1 曲面表示 383
13.13 可见性判别函数 384
小结 384
参考文献 385
练习题 385
第14章 光照模型与面绘制算法 387
14.1 光源 387
14.2 基本光照模型 389
14.2.1 环境光 389
14.2.2 漫反射 389
14.2.3 镜面反射和Phong模型 392
14.2.4 多光源漫反射和镜面反射的合并 395
14.2.5 Wam模型 395
14.2.7 颜色 396
14.2.6 强度衰减 396
14.2.8 透明度 397
14.2.9 阴影 399
14.3 光强度显示 400
14.3.1 分配强度等级 400
14.3.2 gamma校正与视频查找表 401
14.3.3 显示连续色调的图像 402
14.4 半色调模式和抖动技术 402
14.4.1 半色调近似 403
14.4.2 抖动技术 406
14.5 多边形绘制算法 409
14.5.1 恒定光强度的明暗处理 409
14.5.2 Gouraud明暗处理 409
14.5.3 Phong明暗处理 411
14.5.4 快速Phong明暗处理 412
14.6 光线跟踪算法 413
14.6.1 基本光线跟踪算法 413
14.6.2 光线与物体表面的求交计算 416
14.6.3 减少物体求交的计算量 419
14.6.4 空间分割方法 419
14.6.5 光线跟踪反走样 421
14.6.6 分布式光线跟踪 423
14.7 辐射度光照模型 425
14.7.1 基本辐射度模型 425
14.7.2 逐步求精的辐射度方法 428
14.8 环境映射 430
14.9.2 纹理映射 431
14.9.1 用多边形模拟表面细节 431
14.9 添加表面细节 431
14.9.3 过程式纹理映射方法 434
14.9.4 凹凸映射 434
14.9.5 帧映射 436
小结 436
参考文献 437
练习题 437
第15章 颜色模型和颜色应用 440
15.1 光的特性 440
15.2 标准基色和色彩图 442
15.2.1 XYZ颜色模型 442
15.2.2 CIE色度图 443
15.4 RGB颜色模型 445
15.3 直观的颜色概念 445
15.5 YIQ颜色模型 447
15.6 CMY颜色模型 447
15.7 HSV颜色模型 448
15.8 HSV和RGB模型之间的转换 450
15.9 HLS颜色模型 452
15.10 颜色选择及其应用 453
小结 453
参考文献 453
练习题 454
第16章 计算机动画 455
16.1 动画序列的设计 455
16.4 计算机动画语言 456
16.3 光栅动画 456
16.2 通用计算机动画功能 456
16.5 关键帧系统 457
16.5.1 变形 458
16.5.2 模拟加速度 460
16.6 运动的描述 463
16.6.1 直接运动描述 463
16.6.2 目标导向系统 463
16.6.3 运动学和动力学 464
小结 464
参考文献 465
练习题 465
附录A 计算机图形学的数学基础 466
参考文献 488