计算机图形学:基于MFC三维图形开发
2013-11-1
清华大学出版社
孔令德
《计算机图形学:基于MFC三维图形开发》采用面向对象语言visual c++的mfc框架作为开发平台,系统讲解“基本图元的扫描转换”、“二维变换与裁剪”、“三维变换与投影”、“自由曲线与曲面”、“建模与消隐”、“光照模型”与“纹理映射”的实现原理与算法。
以生成三维真实感光照模型为主线,引导读者重点掌握直线的扫描转换原理、多边形的有效边表填充原理、三维物体的几何变换原理与透视投影原理、多面体与曲面体的几何建模原理、z?buffer与画家算法的面消隐原理、基于gouraud明暗处理与phong明暗处理的光滑着色原理、基于颜色纹理、三维纹理与几何纹理的真实感图形绘制原理等内容,从编程角度诠释计算机图形学原理的深刻内涵。通读本书,读者可以在三维场景中绘制出具有光照效果与纹理效果的三维物体的真实感图形动画,同时支持对图形的交互操作。
《计算机图形学:基于MFC三维图形开发》配有与每个原理一一对应且经过精心设计的60个案例源程序。这些程序经过了严格的测试,确保能在visual c++6.0与visual c++2008环境下正常编译运行。本书中的插图图均出自这些案例,其质量可以与opengl或direct3d制作效果相媲美。
孔令德,教授。山西省教学名师,山西省模范教师。太原市尖草坪区第三、四届政协委员。山西省计算机学会常务理事。
2006年主持山西省精品课程“c++程序设计”:2008年主持的教改项目“计算机软件课程群工程化建设”被评为山西省教学成果二等奖。
2008午主持山西省精品课程“计算机图形学”;2010年主持的教学改革项目“应用型工科院校计算机图形学教学模式的改革与实践”被评为山西省教学成果二等奖;2011年主持山西省重点教学改革项目“图形图像处理系列课程实践教学资源与平台的建设”;2012年主持的教学改革项目“计算机图形学实践教学资源库的建设”被评为山西省教学成果一等奖。2013年负责的“计算机工程实验教学中心”被评为“十二五”山西省高等学校实验示范中心。2013年负责的“计算机科学与技术专业”被评为山西省高等学校本科特色专业。2013午被授予山西省高等学校131领军人才的“优秀中青年拔尖创新人才”称号。
第1章 导论
1.1 计算机图形学的定义
1.2 计算机图形学的应用领域
1.2.1 计算机游戏
1.2.2 计算机辅助设计
1.2.3 计算机艺术
1.2.4 虚拟现实
1.2.5 计算机辅助教学
1.3 计算机图形学的相关学科
1.4 计算机图形学的确立与发展
1.5 图形显示器的发展及其工作原理
1.5.1 阴极射线管
1.5.2 随机扫描图形显示器
1.5.3 直视存储管图形显示器
1.5.4 光栅扫描图形显示器
1.5.5 LCD显示器
1.5.6 三维图形显示原理及立体显示器
1.6 图形软件标准
1.7 计算机图形学研究的热点技术
1.7.1 细节层次技术
1.7.2 基于图像的绘制技术
1.8 本章小结
习题1
第2章 MFC绘图基础
2.1 MFC上机操作步骤
2.2 MFC绘图方法
2.2.1 CDC类结构与GDI对象
2.2.2 映射模式
2.2.3 使用GDI对象
2.2.4 CDC类的主要绘图成员函数
2.3 设备上下文的调用与释放
2.4 双缓冲机制
2.5 MFC绘图的几种方法
2.5.1 使用OnDraw()成员函数直接绘图
2.5.2 使用菜单绘图
2.5.3 使用自定义函数绘图
2.6 本章小结
习题2
第3章 基本图元的扫描转换
3.1 直线的扫描转换
3.1.1 算法原理
3.1.2 构造中点误差项
3.1.3 递推公式
3.1.4 整数化处理
3.2 圆的扫描转换
3.2.1 算法原理
3.2.2 构造中点误差项
3.2.3 递推公式
3.3 椭圆的扫描转换
3.3.1 算法原理
3.3.2 构造上半部分椭圆弧的中点误差项
3.3.3 上半部分椭圆弧的递推公式
3.3.4 构造下半部分椭圆弧的中点误差项
3.3.5 下半部分椭圆弧的递推公式
3.4 反走样技术
3.5 Wu反走样算法
3.5.1 算法原理
3.5.2 构造距离误差项
3.5.3 计算机化
3.5.4 彩色直线段的反走样
3.6 本章小结
习题3
第4章 多边形填充
4.1 多边形的扫描转换
4.1.1 多边形的定义
4.1.2 多边形的表示
4.1.3 多边形着色模式
4.1.4 多边形填充算法
4.1.5 区域填充算法
4.2 有效边表填充算法
4.2.1 填充原理
4.2.2 边界像素的处理原则
4.2.3 有效边和有效边表
4.2.4 桶表与边表
4.3 边缘填充算法
4.3.1 填充原理
4.3.2 填充过程
4.4 区域填充算法
4.4.1 填充原理
4.4.2 四邻接点与八邻接点
4.4.3 四连通域与八连通域
4.4.4 种子填充算法
4.5 本章小结
习题4
第5章 二维变换与裁剪
5.1 图形几何变换基础
5.1.1 二维变换矩阵
5.1.2 规范化齐次坐标
5.1.3 矩阵相乘
5.1.4 二维几何变换
5.2 二维基本几何变换矩阵
5.2.1 平移变换矩阵
5.2.2 比例变换矩阵
5.2.3 旋转变换矩阵
5.2.4 反射变换矩阵
5.2.5 错切变换矩阵
5.3 二维复合变换
5.3.1 复合变换原理
5.3.2 相对于任意参考点的二维几何变换
5.3.3 相对于任意方向的二维几何变换
5.4 二维图形裁剪
5.4.1 图形学中常用的坐标系
5.4.2 窗口与视区及窗视变换
5.4.3 窗视变换矩阵
5.5 CohenSutherland直线段裁剪算法
5.5.1 编码原理
5.5.2 裁剪步骤
5.5.3 交点计算公式
5.6 中点分割直线段裁剪算法
5.6.1 中点分割直线段裁剪算法原理
5.6.2 中点计算公式
5.7 Liang Barsky直线段裁剪算法
5.7.1 算法原理
5.7.2 算法分析
5.7.3 算法的几何意义
5.8 多边形裁剪算法
5.9 本章小结
习题5
第6章 三维变换与投影
6.1 三维图形几何变换
6.1.1 三维变换矩阵
6.1.2 三维几何变换
6.2 三维基本几何变换矩阵
6.2.1 平移变换
6.2.2 比例变换
6.2.3 旋转变换
6.2.4 反射变换
6.2.5 错切变换
6.3 三维复合变换
6.3.1 相对于任意参考点的三维几何变换
6.3.2 相对于任意方向的三维几何变换
6.4 平行投影
6.4.1 正投影
6.4.2 三视图
6.4.3 斜投影
6.5 透视投影
6.5.1 透视投影坐标系
6.5.2 三维坐标系变换
6.5.3 世界坐标系到观察坐标系的变换
6.5.4 观察坐标系到屏幕坐标系的变换
6.5.5 透视投影分类
6.5.6 立方体的透视图
6.5.7 屏幕坐标系的伪深度坐标
6.6 本章小结
习题6
第7章 自由曲线与曲面
7.1 基本概念
7.1.1 样条曲线曲面
7.1.2 曲线曲面的表示形式
7.1.3 插值、逼近与拟合
7.1.4 连续性条件
7.2 Bezier曲线
7.2.1 Bezier曲线的定义
7.2.2 Bezier曲线的性质
7.2.3 de Casteljau递推算法
7.2.4 Bezier曲线的拼接
7.3 Bezier曲面
7.3.1 Bezier曲面的定义
7.3.2 双三次Bezier曲面的定义
7.3.3 双三次Bezier曲面的拼接
7.4 B样条曲线
7.4.1 B样条曲线的定义
7.4.2 二次B样条曲线
7.4.3 三次B样条曲线
7.4.4 B样条曲线的性质
7.4.5 构造特殊三次B样条曲线的技巧
7.5 B样条曲面
7.5.1 B样条曲面的定义
7.5.2 双三次B样条曲面的定义
7.5.3 双三次B样条曲面的连续性
7.6 本章小结
习题7
第8章 建模与消隐
8.1 三维物体的数据结构
8.1.1 物体的几何信息与拓扑信息
8.1.2 三表数据结构
8.1.3 物体的表示模型
8.1.4 双表数据结构
8.2 常用物体的几何模型
8.2.1 多面体
8.2.2 曲面体
8.3 消隐算法分类
8.4 隐线算法
8.4.1 凸多面体消隐算法
8.4.2 曲面体消隐算法
8.5 隐面算法
8.5.1 深度缓冲器消隐算法
8.5.2 深度排序消隐算法
8.6 本章小结
习题8
第9章 光照模型
9.1 颜色模型
9.1.1 原色系统
9.1.2 RGB颜色模型
9.1.3 HSV颜色模型
9.1.4 CMYK颜色模型
9.2 简单光照模型
9.2.1 材质模型
9.2.2 环境光模型
9.2.3 漫反射光模型
9.2.4 镜面反射光模型
9.2.5 光强衰减
9.2.6 增加颜色
9.3 光滑着色
9.3.1 直线的光滑着色
9.3.2 Gouraud明暗处理
9.3.3 Phong明暗处理
9.4 简单透明模型
9.5 简单阴影模型
9.6 本章小结
习题9
第10章 纹理映射
10.1 纹理的定义
10.2 颜色纹理
10.2.1 函数纹理
10.2.2 图像纹理
10.3 三维纹理
10.4 几何纹理
10.4.1 参数曲面的定义
10.4.2 映射原理
10.4.3 几何纹理的分类
10.5 简单纹理反走样
10.6 本章小结
习题10
附录A配套案例的说明
参考文献