目 录 1
第一部 基础 1
第一章 概念 1
1.1 三维图形的差异 1
1.2 三维图形的用途 3
1.3 三维图形初步 4
1.4 三维图形的一种定义 4
1.5 机会之窗 4
第二章 硬件 5
2.1 图形适配器 5
2.3 图形适配器的工作方式 8
2.2 图形方式 8
2.4 显示内存映象 10
2.5 图形程序的可移植性 15
2.6 图形适配器标准 16
2.7 监视器 18
第三章 软件 21
3.1 C的优势之一:用途广泛 21
3.2 C的优势之二:功能强 21
3.3 C的优势之三:速度快 22
3.4 用C编译器编程要览 22
3.5 集成的C编程环境 23
3.6 集成的C编译器的工作方式 24
3.8 典型的Quick C编程环境 25
3.7 程序设计过程 25
3.9 典型的Turbo C编程环境 26
3.10 内存管理 27
第四章 程序控制 29
4.1 C的程序结构 29
4.2 C的程序控制 30
4.3 C的操作符 30
4.4 C的循环控制 31
4.5 C的分支指令 32
4.6 使用C的变量 33
4.7 使用C的数组 34
4.8 C程序的可移植性 35
4.9 语法的可移植性 36
4.10 同C编译器的通信 37
第五章 图形控制 39
5.1 初级图形函数 39
5.2 高级图形函数 44
5.3 与图形有关的语法 48
第六章 使用Quick C 49
6.1 系统内存映象 49
6.2 DOS环境 51
6.3 QLB函数库 . 52
6.4 实例研究:运行一典型的C程序 53
6.5 程序的分析 57
6.6 常见错误信息 58
6.7 建立EXE文件 59
第七章 使用Turbo C 60
7.1 系统内存映象 60
7.2 DOS环境 62
7.3 实例研究:运行一典型的C程序 62
7.4 程序的分析 66
7.5 常见错误信息 67
7.6 产生EXE文件 68
第二部 模型化 69
第八章 三维图象的概念 69
8.1 世界生标 69
8.3 模型组件 70
8.2 产生三维模型 70
8.4 B_rep模型化 73
8.5 视图化 73
8.6 子实体 73
8.7 CSG模型化 73
8.8 显示选项 74
第九章 三维模型的操作 77
9.1 三维算法 77
9.2 旋转公式 77
9.3 平移公式 78
9.4 投影公式 79
9.6 弧度与度 80
9.5 棱角变形 80
9.7 旋转—平移序列 83
9.8 关于缩放 84
9.9 关于构筑的操作 84
第十章 立方体 87
10.1透明的线框立方体 87
10.2 全程变量和局部变量 88
10.3 主函数 88
10.4 初始化变量 90
10.5 消去隐藏面 91
10.6 光线预排序方法 91
10.7 光线排序方法 91
10.10实心立方体:平面方程式方法 92
10.8 平面方程式方法 92
10.9 目标空间和图象空间 92
10.11平面方程式公式 93
10.12优化的数据库 93
10.13使用一种必要的擦子 94
10.14一种通用算法 94
10.15编译器注意事项 95
第十一章球体和圆柱体 121
11.1 实心球 121
11.2 区域填充种子点 123
11.3 显示监视器的精度 126
11.4 实心圆柱体 126
12.1 三次参数曲线 160
第十二章三维空间中的曲线 160
12.2 三维自由曲线 161
第十三章表面映射 175
13.1 表面映射 175
13.2 映射立方体 176
13.3 映射圆柱体 177
第十四章 多模型显示 213
14.1 隐藏面消除的种类 213
14.2 隐藏面消除的十种方法 213
14.3 辐射角预排序方法 215
14.6 隔离平面方法 216
14.7 深度排序方法 216
14.5 平面方程式方法 216
14.4 辐射角排序方法 216
14.8 光线跟踪方法 217
14.9 分解方法 217
14.10 Z缓冲器方法 218
14.11最小最大法 219
14.12扫描线方法 219
14.13关于程序设计的一些问题 219
14.14适合C的方法 220
第三部 绘制 221
第十五章光照与明暗处理 221
15.1 明暗处理算法 221
15.2 入射角 222
15.3 光照与反射 223
15.4 表面类型 224
15.5 光线跟踪 225
15.6 个人计算机上的光照与明暗处理 226
第十六章PC上的明暗处理模式 228
16.1 半色调 230
16.2 半色调能力演示 230
16.3 位铺盖:两种策略 232
16.4 线抖动(line dithering) 233
第十七章计算机控制下的明暗处理 246
17.1 一般算法 246
17.2 一个特定算法 247
17.3 演示:计算机明暗处理的立方体 248
17.4 子程序illumination() 248
17.5 子程序shade() 250
17.6 子程序dither() 252
17.7 用立方体做试验 252
17.8 演示:球的计算机明暗处理 252
17.9 演示:圆柱的计算机明暗处理 253
第十八章反射与阴影 316
18.1 镜面反射 317
18.2 阴影 317
18.3 演示程序:镜面反射 318
第十九章动画的概念 340
19.1 BITBLT动画 340
第四部 动画 340
19.22 线框动画 341
19.3 实时动画 342
19.4 优点和缺点 342
19.5 其它动画技术 342
第二十章帧动画 344
20.1 具有硬件速度的软件 344
20.2 选择图形方式 344
20.3 演示:三维实体模型的帧动画 344
20.7 用程序做试验 346
20.6 造型过程 346
20.5 动画管理程序 346
20.4 main()例程 346
20.8 帧动画的潜力 347
第二十一章实时动画 362
21.1 实时动画的机理 362
21.2 提高性能的四种方法 362
21.3 演示:实时动画 363
21.4 实时动画的潜力 363
第五部 应用 369
第二十二章实例研究:包装设计 369
22.1 准备包装盒 369
22.2 为设计做准备 369
22.6 硬件考虑 372
22.5 改进 372
22.3 演示:包装设计 372
22.4 程序工作原理 372
第二十三章 实例研究:飞行模拟 395
23.1 飞行模拟的三维计算公式 395
23.2 空战模拟的三维计算公式 396
23.3 使用飞行模拟原型 396
23.4 程序工作原理 397
23.5 对程序模块的逐个分析 398
23.6 利用源代码做实验 401
第二十四章 实例研究:容器设计 425
24.1 程序工作原理 425
24.2 今后的路 426
A.1 移动光源 452
附录A 用C绘图的数学基础 452
A.2 三角学定理 453
A.3 几何学定理 454
A.4 弧度表示 455
A.5 消除隐藏面 455
A.6 向量乘法 455
A.7 计算机控制下的明暗处理 457
A.8 旋转公式 457
A.9 三次参数曲线 459
附录B 用C绘制图形的磁盘程序 460
B.1 保存VGA和EGA的屏幕图象 460
B.2 保存CGA的屏幕图像 460
附录C 变量字典 472