第1章 VisualC++6.0简介 1
1.1 Visual C++开发环境窗口 1
1.1.1 进入和退出Visual C++集成开发环境 1
1.1.2 创建单文档应用程序 1
1.1.3 添加简单程序代码 3
1.2 Visual C++工程及工作区 4
1.2.1 工程 4
1.2.2 工作区 4
1.2.3 关键类简介 5
1.2.4 图形设备简介 6
1.3 Visual C++简单程序设计 7
1.3.1 菜单的设计 7
1.3.2 对话框的设计 9
习题1 12
第2章 图形系统 13
2.1 计算机图形学的发展及应用 13
2.1.1 计算机图形学的发展简史 13
2.1.2 计算机图形学在我国的发展 14
2.1.3 计算机图形学的应用 15
2.1.4 计算机图形学的发展动向 17
2.2 图形生成硬件设备 18
2.2.1 图形输入设备 18
2.2.2 图形显示设备 22
2.2.3 硬拷贝输出设备 29
2.3 图形软件系统 32
2.3.1 图形软件的组成 32
2.3.2 基本图形软件 32
习题2 33
第3章 二维图形生成算法 34
3.1 直线图形 34
3.1.1 数值微分算法 34
3.1.2 中点画线算法 36
3.1.3 Bresenham画线算法 38
3.1.4 直线线宽的处理 40
3.2 圆与椭圆图形 41
3.2.1 简单方程产生圆弧 41
3.2.2 中点画圆算法 42
3.2.3 Bresenham画圆算法 44
3.2.4 椭圆算法 45
3.3 字符 47
3.3.1 点阵字符 47
3.3.2 向量字符 48
3.4 区域填充 51
3.4.1 种子填充算法 52
3.4.2 多边形域填充 58
3.4.3 区域填充图案 65
3.5 图形反走样基础 70
3.5.1 过取样 70
3.5.2 简单区域取样 71
习题3 71
第4章 图形变换 73
4.1 窗口视图变换 73
4.1.1 窗口区和视图区 73
4.1.2 窗口区和视图区的坐标变换 74
4.2 图形的几何变换 75
4.2.1 二维图形的几何变换 75
4.2.2 三维图形的几何变换 80
4.3 形体的投影变换 84
4.3.1 投影变换的分类 84
4.3.2 平行投影 85
4.3.3 透视投影 91
4.3.4 投影空间 98
习题4 99
第5章 图形裁剪 101
5.1 二维裁剪 101
5.1.1 Cohen-Sutherland直线裁剪算法 101
5.1.2 中点分割算法 105
5.1.3 凸多边形窗口的Cyrus-Beck线裁剪算法 106
5.1.4 内裁剪与外裁剪 108
5.1.5 凹凸多边形的判定 108
5.1.6 凹多边形的分割算法 109
5.1.7 Sutherland-Hodgman多边形裁剪算法 110
5.1.8 Weiler-Atherton多边形裁剪算法 114
5.1.9 字符裁剪 115
5.2 三维裁剪 116
5.2.1 三维Cohen-Sutherland端点编码算法 116
5.2.2 三维中点分割算法 118
5.2.3 三维Cyrus-Beck算法 119
习题5 120
第6章 曲线与曲面的生成 121
6.1 曲线的生成 121
6.1.1 常见参数方程曲线 121
6.1.2 Bezier曲线 122
6.1.3 B样条曲线 127
6.2 曲面的生成 131
6.2.1 旋转曲面参数方程 132
6.2.2 球面 132
6.2.3 圆环面 135
6.2.4 圆柱面、圆锥面和圆台面 135
6.2.5 任意曲线旋转面 137
6.3 双线性曲面生成 138
6.3.1 平面 138
6.3.2 双线性曲面 139
6.4 单线性曲面生成 139
6.4.1 柱面 139
6.4.2 直纹面 140
6.5 Bezier曲面及其拼合 141
6.5.1 Bezier曲面 141
6.5.2 Bezier曲面的拼合 144
6.6 B样条曲面 146
习题6 148
第7章 消除隐藏线和隐藏面 149
7.1 隐藏线和隐藏面 149
7.2 Roberts算法消除隐藏线 149
7.3 消除隐藏面 154
7.3.1 Z缓冲器算法 154
7.3.2 画家算法 157
7.3.3 扫描线算法 158
7.3.4 可见面光线追踪算法 159
习题7 161
第8章 真实感图形技术 162
8.1 颜色 162
8.1.1 色度与三刺激理论 162
8.1.2 CIE色度图 163
8.1.3 颜色系统之间的转换 165
8.1.4 颜色模型 166
8.2 简单光照模型 169
8.3 多边形表示的明暗处理 175
8.3.1 恒定光强的多边形绘制 175
8.3.2 Gouraud明暗处理 175
8.3.3 Phong明暗处理 177
8.4 纹理表示 177
8.4.1 颜色纹理显示 177
8.4.2 凹凸纹理表示 180
8.5 透明处理与阴影显示 182
8.5.1 透明处理 182
8.5.2 阴影显示 183
8.6 整体光照模型与光线跟踪算法 186
8.6.1 整体光照模型 186
8.6.2 Whitted整体光照模型 186
8.6.3 光线跟踪算法 187
习题8 188
第9章 分形图形的生成 189
9.1 函数递归分形图形 189
9.1.1 Koch曲线 189
9.1.2 生成元分形图形 190
9.1.3 树枝的生成 192
9.2 L系统 197
9.2.1 二维L系统 197
9.2.2 三维L系统 202
9.2.3 真实感三维L系统 205
9.3 迭代函数系统 208
习题9 209
第10章 三维植物造型应用实例 210
10.1 参数曲面变形 210
10.2 植物枝干造型 211
10.3 植物树叶造型 213
10.3.1 植物叶片造型 213
10.3.2 植物叶脉造型 219
10.3.3 叶片整体造型实例 221
10.4 植物花朵造型 225
10.4.1 花瓣的边界造型 225
10.4.2 花瓣的弯曲造型 226
10.4.3 花瓣颜色模拟 226
10.4.4 花冠的造型 229
10.4.5 花朵造型实例 229
10.5 植物果实造型 238
10.5.1 椭球及其变形参数方程 238
10.5.2 果实形状的绘制 239
10.5.3 果实颜色纹理模拟 240
10.5.4 果实造型实例 241
10.6 植物生长造型 245
10.6.1 百合花开花造型 245
10.6.2 南瓜生长造型 246
10.6.3 荔枝生长造型 247
10.6.4 黄瓜生长造型 248
10.7 果实体模造型实例 249
10.7.1 西瓜体模造型 249
10.7.2 冬枣体模造型 249
10.7.3 杏体模造型 250
习题10 250
附录 实验指导 251
实验1 直线与圆的绘制 251
实验2 字符绘制 251
实验3 区域填充 251
实验4 图形投影变换 252
实验5 图形裁剪 252
实验6 曲线的绘制 252
实验7 曲面的绘制 253
实验8 消隐处理 253
实验9 光照模型 253
实验10 综合处理 254
参考文献 255