第1章 绪论 1
1.1 计算机图形学的发展历史 1
1.2 计算机图形学的应用及研究前沿 3
1.3 计算机图形学的研究内容 8
1.4 计算机图形学与相关学科的关系 8
习题 9
第2章 计算机图形系统 10
2.1 计算机图形系统概述 10
2.1.1 计算机图形系统的结构 10
2.2 图形输入设备 12
2.1.2 计算机图形系统的基本功能 12
2.2.1 一般应用图形输入设备 13
2.2.2 特殊应用图形输入设备 14
2.3 图形绘制设备 15
2.3.1 绘图仪 15
2.3.2 打印机 16
2.4 图形显示系统 16
2.4.1 显示器 16
2.4.2 显示卡 21
2.5 计算机图形标准 24
2.6 Visual C++的图形程序开发方法 27
2.6.1 图形设备接口 28
2.6.2 OnDraw成员函数 33
2.6.3 GDI对象类 33
2.6.4 Windows映射模式 42
2.6.5 绘图模式的设置 44
2.7 OpenGL程序设计基础 46
2.7.1 OpenGL的主要功能 46
2.7.2 OpenGL绘图程序开发方法 48
习题 55
第3章 二维图形生成技术 56
3.1 直线扫描转换算法 56
3.1.1 直线DDA算法 57
3.1.2 中点画线算法 58
3.1.3 Bresenham画线算法 62
3.2 圆的扫描转换算法 65
3.2.1 圆的性质 65
3.2.2 中点画圆算法 66
3.2.3 Bresenham画圆算法 68
3.3 填充技术 71
3.3.1 种子填充算法 71
3.3.2 多边形扫描线填充算法 75
3.4.2 点阵字符 85
3.4 字符处理 85
3.4.1 字符编码标准 85
3.4.3 字形技术 86
3.5 属性处理 87
3.5.1 线宽的处理 87
3.5.2 线型 88
3.5.3 区域填充图案 89
3.6 反走样 90
3.6.1 提高分辨率 90
3.6.2 直线的简单区域取样 91
3.7 实例演示程序 92
3.8 基于OpenGL的基本图形绘制 99
3.8.1 点 100
3.8.2 线 100
3.8.3 多边形 104
习题 106
第4章 图形变换 107
4.1 基本几何变换 107
4.1.1 二维图形几何变换 107
4.1.2 变换的矩阵表示 109
4.1.3 复合变换 111
4.2 三维图形几何变换 115
4.1.4 二维几何变换的函数 115
4.2.1 基本变换 116
4.2.2 三维几何变换的函数 117
4.3 参数图形几何变换 118
4.3.1 圆锥曲线的几何变换 118
4.3.2 参数曲线、曲面的几何变换 119
4.4 坐标系统 122
4.5 投影变换 124
4.5.1 基本概念 124
4.5.2 平行投影变换 125
4.5.3 透视投影变换 126
4.6 基于Visual C++的OpenGL坐标变换 127
4.6.1 OpenGL中的三维物体显示 127
4.6.2 OpenGL中的几种变换 129
4.7 图形裁剪 135
4.7.1 直线的裁剪 135
4.7.2 多边形的裁剪 140
习题 145
第5章 曲线与曲面 146
5.1 曲线曲面基础 146
5.1.1 曲线曲面的参数表示 147
5.1.2 插值与逼近 148
5.1.3 连续性 149
5.1.4 样条描述 149
5.1.5 三次样条 150
5.2 Bezier曲线 151
5.2.1 Bezier曲线的定义 152
5.2.2 Bezier曲线的性质 153
5.2.3 Bezier曲线的拼接 155
5.2.4 Bezier曲线的离散生成 155
5.3 B样条曲线 157
5.3.1 B样条曲线的定义 157
5.3.2 B样条曲线的分类 158
5.3.3 B样条曲线的性质 161
5.3.4 非均匀有理B样条曲线 162
5.4 Bezier曲面 164
5.4.1 Bezier曲面的定义 164
5.4.2 Bezier曲面的性质 165
5.4.3 Bezier曲面的拼接 166
5.5 B样条曲面 166
5.5.1 B样条曲面的定义 166
5.5.2 非均匀有理B样条曲面 167
5.6.1 样条曲线的绘制 168
5.6 用OpenGL生成曲线与曲面 168
5.6.2 样条曲面的绘制 172
习题 175
第6章 三维真实感物体显示技术 176
6.1 隐藏面和隐藏线的消除 176
6.1.1 凸多面体的隐藏线消除 176
6.1.2 凹多面体的隐藏线消除 177
6.1.3 曲面隐藏线消除 177
6.2 消除隐藏面 178
6.2.1 画家算法 178
6.2.2 Z缓冲器算法 179
6.2.3 扫描线Z缓冲器算法 182
6.2.4 区间扫描算法 183
6.2.5 Warnock算法 184
6.2.6 消隐实例 186
6.3 光照模型 189
6.3.1 颜色模型和颜色应用 189
6.3.2 常用颜色模型 192
6.3.3 OpenGL中的颜色模型 193
6.4 简单光照模型 194
6.5.1 光源的定义 204
6.5 OpenGL的光照处理 204
6.5.2 材质的定义 205
6.5.3 OpenGL的光照实例 206
6.6 纹理映射 207
6.6.1 定义纹理 208
6.6.2 控制纹理滤波 208
6.6.3 纹理处理 208
6.6.4 某个纹理的实例 209
习题 221
7.1.1 交互式绘图的概念 222
7.1.2 交互式绘图系统的交互任务 222
第7章 交互式绘图技术 222
7.1 交互式绘图概述 222
7.1.3 交互式绘图系统的设计原则 223
7.2 交互式输入的基本模式 224
7.3 基本交互式绘图技术 225
7.4 交互式绘图系统的构造 229
7.4.1 交互式用户接口的内容 229
7.4.2 交互式用户接口的工作方式 230
7.4.3 交互式用户接口的实现 231
7.5.1 OpenGL的选择模式 233
7.5 OpenGL对交互式绘图的支持 233
7.5.2 OpenGL的反馈模式 236
7.5.3 用OpenGL缓冲技术实现橡皮筋功能 240
习题 246
第8章 计算机动画技术 247
8.1 计算机动画技术概述 247
8.1.1 动画技术的历史和发展 247
8.1.2 计算机动画技术的应用 248
8.1.3 常用动画软件 249
8.2 计算机动画的分类与原理 252
8.2.1 计算机动画的分类 252
8.2.2 计算机动画的基本原理 253
8.2.3 关键帧技术 254
8.2.4 运动描述 255
8.2.5 动画文件格式 256
8.3 计算机动画的生成方法 257
8.3.1 OpenGL动画设计概述 257
8.3.2 反弹的方块 257
8.3.3 双缓冲技术 262
8.3.4 旋转的立体圆环 266
8.3.5 交互式动画 271
习题 277
参考文献 278