王振武编著的《计算机图形学基础》内容在安排上循序渐进,对理论的讲解通俗易懂,总地来讲有如下3个特点。
(1) 对抽象理论的直观形象介绍。为便于读者快速理解计算机图形学的基本理论,本书在内容安排上循序渐进,用深入浅出的方式和丰富的图例对计算机图形学基本理论进行介绍。
(2) 理论与实例相结合。为便于读者学会对计算机图形学基本理论的应用,书中的重要内容均配有实例。
(3)理论与OpenGL程序相结合。书中的主要算法均给出了完整的源程序代码及其运行界面。为兼顾不同读者对编程语言的掌握程度,书中的程序开发语言为C语言,利用了OpenGL图形软件包,并且采用Win32控制台应用程序的方式。
王振武编著的这本《计算机图形学基础》对计算机图形学的基本原理进行了深入浅出的阐述,书中不仅配有丰富的图例和例题,而且利用C语言和OpenGL图形软件包编写了相应的应用程序,这种理论和实践相结合的方式大大方便了读者对抽象的计算机图形学理论的理解和掌握。
《计算机图形学基础》共10章,包括绪论、计算机图形系统、OpenGL编程环境介绍、基本图形生成算法、二维变换和二维观察、三维变换和三维观察、三维对象的表示、消隐计算、颜色模型以及真实感图形绘制等内容。本书可作为高等院校计算机图形学理论的课程教材,也可作为从事计算机图形处理技术及其他有关的工程技术人员的参考书。
第1章 绪论1
1.1 计算机图形学基本概念/1
1.1.1 什么是计算机图形学/1
1.1.2 图形和图像/1
1.1.3 计算机图形学与其他学科的关系/2
1.2 计算机图形学发展历史/2
1.3 计算机图形学的应用/3
1.3.1 用户接口/3
1.3.2 计算机辅助设计/4
1.3.3 数字娱乐/4
1.3.4 计算机辅助绘图/5
1.3.5 计算机辅助教学/5
1.3.6 科学计算的可视化/6
1.3.7 计算机艺术/6
习题/7
第2章 计算机图形系统8
2.1 计算机图形系统概述/8
2.1.1 计算机图形系统的功能/8
2.1.2 计算机图形系统的结构/9
2.2 计算机图形硬件设备/9
2.2.1 图形输入设备/9
2.2.2 图形显示设备/11
2.2.3 图形绘制设备/17
2.3 计算机图形软件/17
2.3.1 计算机图形软件分类/17
2.3.2 用户接口设计/18
2.3.3 基本交互式绘图技术/20
习题/21
第3章 OpenGL编程环境介绍22
3.1 VS.NET 2008开发环境简介/22
3.2 OpenGL图形软件包介绍/23
3.2.1 OpenGL概述/23
3.2.2 OpenGL的主要功能/23
3.2.3 OpenGL的基本语法/24
3.3 设置OpenGL编程环境/25
3.3.1 OpenGL编程环境设置/25
3.3.2 OpenGL程序的结构/28
习题/30
第4章 基本图形生成算法31
4.1 什么是扫描转换/31
4.2 直线的扫描转换/31
4.2.1 DDA画线法/32
4.2.2 中点画线法/35
4.2.3 Bresenham画线法/39
4.3 圆的扫描转换/43
4.3.1 根据圆的方程画圆/43
4.3.2 中点画圆法/44
4.3.3 Bresenham画圆法/48
4.4 区域填充/51
4.4.1 扫描线多边形填充算法/51
4.4.2 边缘填充算法/60
4.4.3 种子填充算法/61
4.4.4 其他填充算法/66
4.4.5 区域填充的属性处理/67
4.5 属性处理/67
4.5.1 直线的线型处理/67
4.5.2 直线的线宽处理/68
4.5.3 曲线的线宽处理/72
4.6 字符/73
4.6.1 基本概念/73
4.6.2 点阵字符/73
4.6.3 矢量字符/74
4.7 反走样/74
4.7.1 提高分辨率/75
4.7.2 简单区域取样/76
4.7.3 加权区域取样/77
习题/78
第5章 二维变换和二维观察79
5.1 图形变换基本知识/79
5.1.1 矢量和矩阵/79
5.1.2 齐次坐标/81
5.2 基本二维变换/81
5.2.1 平移变换/82
5.2.2 旋转变换/82
5.2.3 缩放变换/83
5.2.4 基本二维变换的矩阵表示/84
5.2.5 其他变换/96
5.3 二维复合变换/105
5.3.1 连续平移/105
5.3.2 连续旋转/106
5.3.3 连续缩放/106
5.3.4 通用基准点的变换/106
5.3.5 通用方向的变换/107
5.3.6 二维变换总结/108
5.4 二维观察/109
5.4.1 二维观察流程/109
5.4.2 用户坐标系到观察坐标系的变换/110
5.4.3 窗口到视区的变换/111
5.4.4 二维裁剪概述/112
5.4.5 点裁剪/112
5.4.6 直线的裁剪/112
5.4.7 多边形的裁剪/125
5.4.8 曲线的裁剪/128
5.4.9 字符的裁剪/128
习题/128
第6章 三维变换和三维观察130
6.1 三维变换概述/130
6.2 三维几何变换/130
6.2.1 三维平移变换/131
6.2.2 三维变比变换/136
6.2.3 三维旋转变换/141
6.2.4 三维反射变换/147
6.2.5 三维错切变换/153
6.2.6 三维复合变换/158
6.3 三维投影变换/162
6.3.1 三维投影变换的分类/162
6.3.2 三视图/164
6.3.3 正轴测/166
6.3.4 斜平行投影/169
6.3.5 透视投影/171
6.4 三维观察/178
6.4.1 观察坐标系/178
6.4.2 观察空间/179
6.4.3 三维观察流程/180
习题/180
第7章 三维对象的表示181
7.1 三维对象表示方法概述/181
7.1.1 三维图形的基本问题/181
7.1.2 数据模型/181
7.1.3 过程模型/182
7.2 多边形表面/182
7.2.1 多边形表面概述/182
7.2.2 多边形表面表示法/182
7.3 二次曲面/183
7.3.1 球面/183
7.3.2 椭球面/184
7.3.3 环面/184
7.3.4 超二次曲面/184
7.4 样条曲线概述/185
7.4.1 样条的基本概念/185
7.4.2 样条曲线的分类/185
7.5 Hermite样条曲线/187
7.6 Bézier曲线和曲面/189
7.6.1 Bézier曲线的定义/189
7.6.2 Bernstein基函数的性质/190
7.6.3 常见的Bézier曲线/191
7.6.4 Bézier曲线的性质/192
7.6.5 Bézier曲线的绘制/193
7.6.6 Bézier曲面/197
7.7 B样条曲线和曲面/198
7.7.1 B样条曲线的定义/198
7.7.2 常见的B样条曲线/199
7.7.3 B样条曲线的性质/201
7.7.4 B样条曲线的分类/201
7.7.5 B样条曲面/202
7.8 空间分区表示方法/202
7.8.1 立体构造/202
7.8.2 八叉树/203
7.8.3 BSP树/204
7.9 非规则对象表示方法/204
7.9.1 分形几何方法/205
7.9.2 粒子系统/206
7.9.3 基于物理的建模/207
7.9.4 数据集可视化/207
习题/207
第8章 消隐计算209
8.1 消隐概述/209
8.1.1 消隐的定义/209
8.1.2 消隐的分类/209
8.1.3 消隐算法的原则/210
8.2 Z缓冲区算法/211
8.3 区域扫描线算法/213
8.4 深度排序算法/215
8.5 光线跟踪算法/217
8.6 BSP算法/217
习题/218
第9章 颜色模型219
9.1 光的特性/219
9.1.1 电磁频谱/219
9.1.2 颜色的心理学特征/219
9.2 颜色模型/220
9.3 标准基色和色度图/221
9.4 RGB颜色模型/223
9.5 CMY颜色模型/223
9.6 HSV颜色模型/224
习题/225
第10章 真实感图形绘制226
10.1 简单光照模型/226
10.1.1 环境反射光/227
10.1.2 漫反射光/227
10.1.3 镜面反射光/228
10.1.4 光强衰减/229
10.1.5 颜色处理/230
10.2 明暗处理/231
10.2.1 恒定光强的明暗处理/231
10.2.2 Gouraud明暗处理/232
10.2.3 Phong明暗处理/233
10.3 阴影处理/234
10.3.1 自身阴影生成/235
10.3.2 投射阴影生成/235
10.4 透明处理/236
10.4.1 透明效果的简单模拟/236
10.4.2 考虑折射的透明处理/237
10.5 整体光照模型与光线跟踪/238
10.5.1 整体光照模型概述/238
10.5.2 Whitted光照模型/238
10.5.3 光线跟踪算法/239
10.6 纹理映射/240
10.6.1 颜色纹理处理/241
10.6.2 几何纹理处理/242
习题/243
参考文献/2244