第1章 绪论 2
1.1 计算机图形学与图像处理的区别 2
1.2 计算机图形学的典型应用领域 3
1.3 应用分类 6
1.4 交互式图形 7
1.4.1 概述 7
1.4.2 交互式图形系统框架 9
1.5.1 发展历程 12
1.5 计算机图形学的硬件、软件发展 12
1.5.2 输出技术 14
1.5.3 输入技术 19
1.5.4 软件可移植性以及图形标准 19
1.6 图形学目前的研究动态 20
1.7 本章小结 21
习题与思考 22
第2章 常用图形软件简介 23
2.1 平面类 23
2.2 三维类 26
2.3 多媒体类 32
2.4 网络类 34
2.5 工程类 38
2.6 工具类 40
2.7 编程类 42
2.8 本章小结 44
习题与思考 44
3.1 直线的扫描变换 45
第3章 基于光栅扫描的二维图元生成算法 45
3.1.1 基本增量算法 46
3.1.2 中点线算法 48
3.1.3 Bresenham画线算法 52
3.2 圆与椭圆的扫描变换 55
3.2.1 圆的扫描变换 55
3.2.2 椭圆的扫描变换 61
3.3 区域填充 66
3.3.1 多边形域的填充 66
3.4.1 直线线宽的处理 81
3.4 线宽与线型的处理 81
3.3.3 图案填充 81
3.3.2 圆域的填充 81
3.4.2 圆弧线宽的处理 83
3.4.3 线型的处理 84
3.5 字符 85
3.5.1 矢量字符 85
3.5.2 点阵字符 87
3.5.3 字型技术 88
3.5.4 字符输出 89
3.6 裁剪 90
3.6.1 窗口与视口间的变换 91
3.6.2 线段裁剪 92
3.6.3 多边形裁剪 104
3.6.4 字符裁剪 115
3.7 反走样基础 115
3.7.1 提高分辨率 117
3.7.2 简单的区域反走样算法 117
3.7.3 卷积积分与反走样算法 118
3.7.4 半色调技术 119
3.8 本章小结 120
习题与思考 121
第4章 图形硬件与图形软件标准化 122
4.1 图形输入设备 122
4.1.1 键盘 123
4.1.2 鼠标 126
4.1.3 光笔 127
4.1.4 触摸屏 128
4.1.5 坐标数字化仪 130
4.1.6 图形扫描仪 132
4.1.7 数字相机 133
4.1.8 手写笔 134
4.2 图形输出设备 135
4.2.1 图形显示设备 135
4.2.2 图形绘制设备 147
4.3 其他图形设备 150
4.3.1 图形处理器 150
4.3.2 视频控制器 151
4.3.3 显示处理器 151
4.4 图形标准化概述 152
4.5 图形程序接口标准 153
4.5.1 GKS标准 154
4.5.2 GKS-3D标准 156
4.5.3 PHIGS标准 156
4.5.4 其他 160
4.6 图形元文件 160
4.6.1 GKSM和VDM文件 160
4.7 设备接口标准 162
4.7.1 VDI虚拟设备接口 162
4.6.2 CGM文件 162
4.7.2 CGI计算机图形设备接口 163
4.8 应用程序接口标准 163
4.8.1 概述 163
4.8.2 基本图形转换规范 164
4.8.3 产品模型数据转换标准 166
4.9 本章小结 170
习题与思考 170
5.1 二维变换 171
5.1.1 平移变换 171
第5章 几何变换 171
5.1.2 比例变换 172
5.1.3 旋转变换 172
5.2 齐次坐标系和二维变换的矩阵表示 173
5.2.1 平移变换 174
5.2.2 比例变换 175
5.2.3 旋转变换 175
5.2.4 刚体变换和仿射变换 176
5.2.5 对称变换 177
5.3.1 关于任意点P1旋转物体 178
5.3 二维变换的组合 178
5.3.2 关于任意点P1比例变换物体 179
5.3.3 综合变换 179
5.4 窗口到视口的变换 180
5.4.1 基本概念 180
5.4.2 视窗变换实例Window To Viewport的设计 182
5.5 效率问题 186
5.6 三维变换的矩阵表示 187
5.7 三维变换的组合 190
5.7.1 实例一 190
5.7.2 实例二 193
5.8 坐标系的变换 194
5.9 三维变换中的对称变换矩阵 198
5.10 本章小结 199
习题与思考 199
第6章 三维视图 200
6.1 投影 200
6.1.1 透视投影 202
6.1.2 平行投影 203
6.2 三维视图的定义 206
6.3 平面几何投影的计算 209
6.4 平面几何投影的实现 213
6.4.1 平行投影 214
6.4.2 透视投影 217
6.4.3 三维规格化裁剪盒的裁剪 219
6.4.4 在齐次坐标系中裁剪 220
6.4.5 映射到视区 223
6.4.6 视图变换实现方法小结 223
6.5 坐标系名称 224
6.6 本章小结 225
习题与思考 226
第7章 三维图形的绘制实践 227
7.1 概述 227
7.2 交互式图形系统应用实例介绍 227
7.2.1 Photoshop制作爆炸效果 227
7.2.2 用Photoshop制作立体台灯 232
7.3 奖杯的制作 235
7.4 利用VC设计三维投影程序 244
7.4.1 界面设计 245
7.4.3 关于视图参考坐标系的设计 246
7.4.2 程序结构 246
7.4.4 CMy3D类的具体设计 247
7.4.5 投影图的显示 248
7.4.6 布局图的显示 249
7.5 利用OpenGL图形包编制应用程序 249
7.5.1 OpenGL的构成及工作流程 249
7.5.2 OpenGL的运行环境要求 250
7.5.3 OpenGL的应用程序开发 251
习题与思考 270
7.6 本章小结 270
8.1 交互任务 272
8.2 交互技术 272
第8章 图形用户界面与交互技术 272
8.2.1 定位操作 273
8.2.2 选图 274
8.2.3 实数输入设备 275
8.2.5 功能选择 276
8.2.6 几何约束 276
8.2.4 字符输入 276
8.2.7 拖动 279
8.2.8 橡皮筋技术 279
8.2.9 图形变比 281
8.2.10 引力场效果 281
8.2.11 标尺和导向线 282
8.2.12 坐标显示 283
8.2.13 菜单 283
8.2.14 在三视图上作三维输入 283
8.2.15 扫描表示 284
8.3 图形输入模式 285
8.4 图形输出属性及其处理方法 287
8.4.1 直线的属性 287
8.4.2 多边形填色的属性 287
8.4.3 字符的属性 288
8.4.4 符号的属性 288
8.4.5 属性的组合控制 288
8.5.1 简单易学 289
8.5 设计人机图形交互的一般原则 289
8.4.6 属性的查询 289
8.5.2 提供反馈 290
8.5.3 出错处理 290
8.5.4 设计的一致性 290
8.5.5 可扩充性 290
8.6 交互技术应用实例 290
8.6.1 界面设计 290
8.6.2 结构设计 291
8.7 本章小结 292
8.6.4 程序小结 292
8.6.3 程序实现 292
习题与思考 293
第9章 真实感图形的显示 294
9.1 消隐处理 294
9.1.1 消隐的基础知识 294
9.1.2 常见消隐方法 295
9.2 光照模型及浓淡处理 301
9.2.1 漫射光照明 301
9.2.2 点光源照明和镜面反射 303
9.2.3 浓淡形成算法 305
9.2.4 整体光照明模型 305
9.2.5 计算机色彩构成知识 307
9.3 透明 309
9.4 阴影 310
9.5 纹理 311
9.6 三维仿真显示 312
9.8 真实感图形技术的实现 314
9.8.1 程序Realism简介 314
9.7 实时真实感图形 314
9.8.2 知识准备 315
9.8.3 程序Realism的设计 318
9.8.4 程序Realism具体实现 323
9.9 本章小结 326
习题与思考 327
第10章 曲线与曲面 328
10.1 曲线的产生 328
10.1.1 DDA曲线生成算法 328
10.1.2 内插法 331
10.2 自由曲线 338
10.2.1 三次参数样条曲线段 339
10.2.2 三次Bezier曲线段 342
10.2.3 三次B样条曲线段 347
10.2.4 NURBS曲线 351
10.3 曲面 351
10.3.1 Coons曲面 352
10.3.2 Bezier曲面 353
10.3.3 B样条曲面 354
10.4 本章小结 355
10.3.4 特殊曲面的生成 355
习题与思考 356
第11章 实体造型 357
11.1 实体的表示 357
11.1.1 参考坐标系 358
11.1.2 元素的定义 359
11.1.3 常用的形体表示方式 361
11.2 平面图形数据结构 367
11.2.1 数据的逻辑结构 367
11.2.2 数据的物理结构 368
11.2.3 三维形体 369
11.3 实体造型系统简介 375
11.4 本章小结 375
习题与思考 375
第12章 计算机动画技术简介 376
12.1 概述 376
12.2 动画的种类划分 377
12.3 计算机动画的关键技术和技巧 378
12.4.1 动画播放 384
12.4 实现技术 384
12.4.2 利用getimage()和putimage()实现动画 385
12.4.3 多重屏幕页 386
12.5 程序举例 386
12.6 计算机动画技术的进一步研究 387
12.7 本章小结 388
习题与思考 389
13.1 概述 390
13.2 画板系统的需求分析 390
第13章 简单图形系统的实现 390
13.3 设计考虑 391
13.3.1 设计思路 391
13.3.2 设计层次 392
13.4 界面设计 393
13.5 类的设计 395
13.5.1 图形类 397
13.5.2 CShapeManager类 423
13.5.3 CHistory类 433
13.5.4 对一些自动生成类的介绍 434
13.6 图形系统设计的一般原则 442
习题与思考 443
第14章 虚拟现实与可视化技术 444
14.1 虚拟现实 444
14.1.1 虚拟现实采用的关键技术 444
14.1.2 虚拟现实造型语言VRML 445
14.1.3 虚拟现实系统的应用分类 445
14.1.4 虚拟现实的应用前景 447
14.2.1 可视化的主要特点及应用 449
14.2 科学计算可视化 449
14.2.2 三维可视化技术 451
14.2.3 矢量场可视化的研究 452
14.3 虚拟现实编程实例:虚拟生活小区 453
14.3.1 VRML虚拟现实建模语言 453
14.3.2 实例介绍 456
14.4 参考书目 466
附录A 空间与矩阵概念 467
A1 空间 467
A1.1 标量 467
A1.2 向量空间 468
A1.3 仿射空间 469
A1.4 欧几里得空间 470
A1.5 投影 471
A1.6 Gram-Schmidt正交化 472
A1.7 参考书目 472
A2 矩阵 473
A2.1 定义 473
A2.2 矩阵运算 473
A2.3 行矩阵与列矩阵 474
A2.5 表示法的变化 475
A2.4 秩 475
A2.6 叉积 477
A2.7 特征值和特征向量 477
A2.8 参考书目 478
附录B 三维视图实例 479
B.1 3DViewing概述 479
B.2 知识准备 480
B.3 3DViewing的设计 485
B.4 3DViewing的具体实现 488