第1篇 计算机图形学的数学基础 1
第1章 预备知识 1
1.1 所用数学方法 1
1.1.1 矢量及其运算 1
1.1.2 矩阵方法 3
1.1.3 行列式 6
1.2 显式方程和隐式方程 7
1.3 参数方程 8
1.4 坐标系 9
1.5 习题 12
第2章 图形几何变换 13
2.1 齐次坐标 13
2.2 窗口区视图区变换 14
2.3 二维图形变形 16
2.4 三维图形变换 20
2.5 习题 26
第3章 形体的投影变换 27
3.1 概述 27
3.2 平行投影 28
3.2.1 正平行投影 28
3.2.2 正轴测投影 30
3.2.3 斜平行投影 32
3.3 透视投影 34
3.3.1 透视投影的几何元素与形成规律 34
3.3.2 一点透视 36
3.3.3 二点透视 38
3.3.4 三点透视 40
3.4 透视图的绘制 41
3.5 习题 44
第4章 曲线 46
4.1 引言 46
4.2 曲线的代数形式和几何形式 47
4.3 切矢 49
4.4 曲线的参数空间 50
4.5 调和函数 51
4.6 重新参数化 53
4.7 截取、延伸和分割 55
4.8 空间曲线 56
4.9 四点形式 57
4.10 组合曲线 59
4.10.1 组合曲线的概念与几何系数矩阵 59
4.10.2 组合曲线的连续性条件 59
4.11 样条曲线 60
4.11.1 三次样条曲线的力学背景 60
4.11.2 用二阶导数表示的三次样条函数 61
4.12 Bezier曲线 61
4.13 B样条曲线 70
4.14 三次参数曲线的等价表示 79
4.15 习题 80
第5章 曲面 83
5.1 参数曲面的定义及引例 83
5.2 曲线的代数形式和几何形式 84
5.3 切矢、扭矢和法矢 88
5.4 调和函数 90
5.5 曲面片的重新参数化 90
5.6 分割 92
5.7 平面、柱面和直纹面 93
5.8 旋转曲面 95
5.9 Coons曲面 96
5.10 Bezier曲面及其拼合 99
5.10.1 Bezier曲面 99
5.10.2 Bezier曲面与Ferguson曲面的等价性 100
5.10.3 Bezier曲面的拼合 101
5.11 B样条曲面 103
5.12 习题 106
第2篇 计算机图形学的算法基础 109
第6章 引论 109
6.1 计算机图形学、图像处理和模式识别 109
6.2 计算机图形学概述 110
6.3 计算机图形学的发展 111
6.3.1 计算机图形学的确立与硬件的发展 111
6.3.2 计算机图形学软件与算法的发展 113
6.3.3 计算机图形学的若干研究热点与发展趋势 114
6.4 计算机图形学的应用 115
6.5 习题 116
第7章 图形设备 118
7.1 图形输入设备 118
7.1.1 逻辑交互设备 118
7.1.2 物理交互设备 119
7.1.3 数据生成设备 120
7.2 图形显示设备 121
7.2.1 阴极射线管基础 121
7.2.2 彩色CRT光栅扫描基础 122
7.2.3 存储管式图形显示器 122
7.2.4 随机扫描图形显示器 122
7.2.5 光栅扫描刷新图形显示器 123
7.2.6 平板显示器 127
7.3 硬拷贝输出设备 128
7.3.1 笔式绘图仪 128
7.3.2 打印机 128
7.4 习题 129
第8章 光栅扫描图形学 131
8.1 直线生成算法 131
8.1.1 数字微分分析法 131
8.1.2 Bresenham画直线算法 133
8.1.3 整数Bresenham算法 134
8.1.4 一般Bresenham算法 135
8.2 圆与椭圆的生成算法 137
8.2.1 Bresenham画圆算法 137
8.2.2 椭圆的生成 140
8.3 实区域的扫描转换 143
8.3.1 点位于多边形内部的判定 143
8.3.2 多边形填充 145
8.3.3 多边形的扫描转换 145
8.3.4 简单有序边表算法 147
8.3.5 更有效的有序边表算法 148
8.3.6 采用活化边表的有序边表算法 149
8.3.7 边填充算法 150
8.3.8 栅栏填充算法 151
8.3.9 边标志算法 152
8.4 区域填充 153
8.4.1 简单的种子填充算法 155
8.4.2 扫描线种子填充算法 156
8.5 帧缓冲器与光栅的寻址 158
8.5.1 帧缓冲器 158
8.5.2 光栅的寻址 160
8.6 线段显示和字符显示 161
8.6.1 线段显示 161
8.6.2 字符显示 162
8.7 图形反走样基础 163
8.7.1 过取样 164
8.7.2 简单的区域反走样算法 164
8.8 习题 166
第9章 裁剪 168
9.1 二维裁剪 168
9.1.1 Cohen-Sutherland端点编码算法 169
9.1.2 中点分割算法 172
9.1.3 凸多边形窗口的Cyrus-Beck线裁剪算法 173
9.1.4 Liang-Barsky二维裁剪算法 175
9.1.5 内裁剪和外裁剪 179
9.1.6 凸多边形的判定和内法线的确定 179
9.1.7 凹多边形的分割算法 181
9.1.8 多边形裁剪 182
9.1.9 SutherLand-Hodgman逐次多边形裁剪算法 183
9.1.10 Weiler-Atherton多边形裁剪算法 188
9.1.11 字符裁剪 192
9.2 三维裁剪 193
9.2.1 推广的Cohen-Sutherland端点编码算法 193
9.2.2 三维中点分割算法 195
9.2.3 三维Cyrus-Beck算法 196
9.2.4 Liang-Barsky三维裁剪 198
9.2.5 坐标裁剪 201
9.3 习题 204
第10章 隐藏线和隐藏面 206
10.1 问题的提出 206
10.2 Roberts算法 207
10.2.1 平面方程与体矩阵 207
10.2.2 体矩阵的坐标变换与运算 210
10.2.3 自隐藏面 211
10.2.4 凸多面体对线段的遮挡 212
10.3 Z缓冲器算法 218
10.4 画家算法 220
10.5 扫描线算法 221
10.5.1 扫描线Z缓冲器算法 222
10.5.2 区间扫描线算法 223
10.6 可见面光线追踪算法 225
10.7 浮动水平线算法 227
10.8 习题 231
第11章 真实感图像绘制 233
11.1 一个简单的光照模型 233
11.2 基于简单光照模型的多边形绘制 236
11.2.1 恒定光强的多边形绘制 236
11.2.2 Gouraud明暗处理 236
11.2.3 Phong明暗处理 238
11.3 透明处理 241
11.4 阴影显示 242
11.5 物体的纹理显示 245
11.5.1 颜色纹理的显示 245
11.5.2 凹凸纹理的显示 247
11.6 整体光照模型与光线跟踪 248
11.6.1 整体光照模型 248
11.6.2 Whitted整体光照模型 249
11.6.3 光线追踪算法 250
11.7 颜色 252
11.7.1 色度与三刺激理论 252
11.7.2 原色混合系统与颜色匹配实验 253
11.7.3 色度图和1931CIE色度图 254
11.7.4 颜色系统之间的转换 258
11.7.5 几种颜色系统 260
11.8 习题 265
附录 267
附录A Turbo C绘图软件包 267
附录B Turbo C绘图程序实例 296
参考文献 300