第1章 绪论 1
1.1计算机图形学的概念及研究内容 1
目录 1
1.2计算机图形学的发展 2
1.2.1计算机图形学硬件的发展 2
1.2.2计算机图形学软件的发展 3
1.2.3计算机图形学在我国的发展 4
1.3计算机图形学的应用 4
1.3.1计算机辅助设计与制造 5
1.3.2计算机艺术 5
1.3.3计算机辅助教学 5
1.3.7过程控制及系统环境模拟 6
1.4.1科学计算可视化 6
1.4计算机图形学的当前研究课题 6
1.3.5医疗诊断 6
1.3.4办公自动化和电子出版技术 6
1.3.6计算机动画 6
1.4.2人机交互界面 7
1.4.3虚拟现实 7
1.4.4并行处理技术 7
小结 7
综合练习一 8
2.1计算机图形系统的构成 9
第2章 计算机图形系统 9
2.2计算机图形显示器 10
2.2.1阴极射线管显示器 11
2.2.2图形显示器类型 13
2.2.3其他图形显示器 16
2.2.4显示配置 20
2.3计算机图形输入设备 21
2.3.1键盘 21
2.3.3光笔 22
2.3.2鼠标 22
2.3.4图像扫描仪 23
2.3.5跟踪球 24
2.3.6触摸屏 24
2.3.7数字化仪 24
2.4计算机图形输出设备 25
2.4.1绘图仪 25
2.3.9视觉系统 25
2.3.8声音系统 25
2.4.2打印机 26
小结 27
综合练习二 27
第3章 OpenGL编程基础 29
3.1OpenGL的简介 29
3.1.1OpenGL概述 29
3.1.2OpenGL的功能 30
3.2.1GLUT的概述及安装 31
3.1.3OpenGL的组成 31
3.2OpenGL应用工具包GLUT 31
3.2.2GLUT函数 32
3.3OpenGL初步编程 37
3.3.1OpenGL函数命名与数据类型 38
3.3.2库和头文件 39
3.3.3一个简单的OpenGL程序 40
3.3.4窗口坐标设置 44
小结 49
综合练习三 49
第4章 基本图元的生成 50
4.1基本绘图元素 50
4.2直线的生成 51
4.2.1概述 51
4.2.2数值微分法 52
4.2.3中点面线法 53
4.2.4Bresenham算法 55
4.3圆的生成 57
4.3.1概述 57
4.3.2Bresenham画圆法 58
4.4椭圆的生成 59
4.4.1概述 59
4.4.2中点椭圆算法 60
4.5区域填充 63
4.5.1多边形区域填充 63
4.5.2边缘填充 67
4.5.3种子填充 68
4.6OpenGL中基本几何图形的绘制 70
4.6.1点的绘制 70
4.6.2线的绘制 73
4.6.3多边形的绘制 77
综合练习四 83
小结 83
第5章 二维图形变换 84
5.1基本几何变换 84
5.1.1平移变换 84
5.1.2旋转变换 85
5.1.3比例变换 86
5.1.4对称变换 86
5.1.5错切变换 88
5.2几何变换的矩阵表示 89
5.2.1齐次坐标与平移变换 89
5.2.2二维图形齐次坐标变换矩阵 90
5.3复合变换 92
5.3.1复合平移 92
5.3.2复合旋转 92
5.3.3复合缩放 93
5.3.4绕任意点旋转 93
5.3.6对任意直线作对称变换 94
5.3.5对任意点作比例变换 94
5.4二维观察 95
5.4.1二维图形坐标系统 95
5.4.2二维观察流程 96
5.4.3观察参考坐标系 97
5.4.4窗口到视区的变换 97
5.5二维图形裁剪 99
5.5.1点的裁剪 99
5.5.2线段的裁剪 100
5.5.3多边形的裁剪 107
5.5.4其他图形的裁剪 108
5.6OpenGL中的二维图形变换 109
小结 112
综合练习五 112
6.1人机交互界面技术及其特点 114
6.1.1建立模型 114
第6章 交互式绘图技术 114
6.1.2窗口资源的充分利用 115
6.1.3信息反馈 116
6.1.4同一性原则 117
6.1.5操作的简单化 117
6.1.6Undo功能及误操作的处理 117
6.1.7界面的亲和度及其多样化服务 118
6.2数据输入设备及输入处理 118
6.2.1数据输入设备 119
6.2.2数据输入处理 121
6.3交互式绘图技术 122
6.3.1基本绘图技术 122
6.3.2基本三维技术 126
6.4OpenGL中的交互式绘图技术 127
6.4.1选择 127
6.4.2反馈 133
综合练习六 138
小结 138
第7章 三维物体的表示 139
7.1多边形表面 139
7.2曲线/曲面基础知识 140
7.2.1曲线/曲面描述方法的发展 140
7.2.2曲线/曲面的参数表示 141
7.2.3插值与逼近 142
7.2.4参数连续性与几何连续性 144
7.2.5基函数 145
7.3次曲面 145
7.4次样条 146
7.4.1三次样条函数的提出 146
7.4.2三次Hermite样条 147
7.5Bézier曲线/曲面 149
7.5.1Bézier曲线的定义 149
7.5.2Bezier曲线的性质 150
7.5.3Bézier曲线的拼接 153
7.5.4Bézier曲线的递推算法 154
7.5.5Bézier曲面 155
7.6B样条曲线/曲面 157
7.6.1B样条曲线的定义 157
7.6.2B样条曲线的分类 161
7.6.3B样条曲线的性质 165
7.6.4B样条曲面 167
7.7NURBS曲线/曲面 168
7.7.1NURBS曲线/曲面的定义 168
7.7.2NURBS曲线/曲面的特点 170
7.8OpenGL中的曲线/曲面 170
7.8.1二次曲面 170
7.8.2Bézier曲线/曲面 175
7.8.3NURBS曲线/曲面 184
综合练习七 191
小结 191
第8章 三维图形变换 193
8.1三维几何变换 193
8.1.1三维齐次坐标矩阵 193
8.1.2三维基本几何变换 194
8.1.3三维复合变换 199
8.2投影变换 201
8.2.1正平行投影 202
8.2.2正轴侧投影 205
8.2.3斜平行投影 207
8.2.4透视投影 208
8.3三维观察 211
8.3.1观察坐标系 212
8.3.2从世界坐标到观察坐标的变换 213
8.3.3观察空间 213
8.3.4规范化投影空问 215
8.3.5三维观察流程 216
8.4三维裁剪 217
8.5OpenGL中的三维图形变换 218
8.5.1OpenGL中的矩阵操作函数 219
8.5.2几何变换 220
8.5.3投影变换 224
8.5.4视区变换 228
8.5.5裁剪变换 228
8.5.6矩阵堆栈 230
小结 232
综合练习八 233
第9章 可见面判别算法 234
9.1可见面判别算法基础知识 234
9.1.1可见面的几何二义性 234
9.1.2凸多面体的隐藏线消除 235
9.1.3判别的计算 236
9.1.4凹多面体的隐藏线消除 237
9.2深度缓存算法 239
9.3扫描线算法 241
9.4家算法 244
9.5区域细分算法 246
小结 249
综合练习九 249
第10章 真实感图形的生成与处理 250
10.1概述 250
10.2简单光照模型 251
10.2.1环境光 251
10.2.2镜面反射光 252
10.2.3漫反射光 252
10.2.4Phong模型 253
10.3明暗处理方法 255
10.3.1恒定光强的明暗处理 255
10.3.2Gouraud明暗处理 255
10.3.3Phong法向插值法 257
10.4透明的处理 258
10.5阴影产生技术 260
10.6整体光照模型与光线跟踪 260
10.6.1Whitted光照模型 261
10.6.2光线跟踪算法 261
10.6.3光线跟踪的反走样技术 263
10.7纹理处理 264
10.7.1纹理映射 265
10.7.2扰动映射 266
10.8颜色 267
10.8.1颜色的性质 267
10.8.2颜色模型 268
10.9OpenGL中的真实感图形的生成 270
10.9.1颜色 270
10.9.2光照 274
综合练习十 288
小结 288
附录A TurboC/C++的图形系统函数 289
A.1屏幕的设置 289
A.2绘图颜色和线型特性的确定 290
A.3填充的设置 292
A.4图形模式下的文本设置 292
A.5常用的绘图函数 293
A.6图形存取函数 295
附录B 常用OpenGL绘图函数 297
B.1模式设置与执行函数 297
B.2OpenGL的应用工具包 297
GLUT函数 297
B.3基本几何图元的绘制函数 298
B.4图形变换命令 299
B.5曲线与曲面绘制函数 300
B.5.1二次曲面函数 300
B.5.2求值器函数 301
B.5.3NURBS函数 302
B.6选择与反馈函数 302
B.7颜色与光照函数 303
参考答案 304
第1章 304
第2章 304
第3章 304
第4章 305
第5章 306
第6章 307
第7章 308
第8章 308
第9章 309
第10章 310
参考文献 312