计算机图形图像编程

计算机图形图像编程 教材名称: 计算机图形图像编程
ISBN号: 978-7-89436-471-5 作者: 李婷婷
字数: 296千字 规格: 16开
印制时间: 2017-01-01 出版日期: 2017-01-01
定价: 59.00 元 样章下载: 样章.pdf
购买地址:

《计算机图形图像编程实践教程》旨在培养学生在图形、图像编程方面的理论知识和专业技能,适合作为高等学校图形、图像编程的教学使用。本教材改变传统以讲解计算机图形、图像理论知识为中心,而是采用项目导向教学方法,将知识内容以项目形式呈现在广大学生面前。教学过程中带领学生进行项目构思、项目设计、项目实施、项目运行,使学生掌握图形图像编程方法。
 
学习本教材学生需要具备微积分、矩阵等知识并掌握C/C++语言。通过学习,学生能够根据实际需要进行图形、图像编程。本教材将理论与实践相结合,教学内容配有大量案例以及项目,充分体现“做中学”的思想。
 
本教材的作者都是具有多年教学经验的教师,在教学过程中不断的总结经验与创新教改,结合大连东软信息学院TOPCARES-CDIO 理念之后编写而成,教材共分11章,每个章节都有独立的项目案例。此教材使用起来实用性强,能够使学生在实践学习过程中深入理解项目制作的具体流程,最终能够独立完成图形、图像编程与开发。
第1章 图形图像概论…………………………………………………………………… 1
1.1 基本概念…………………………………………………………………………… 1
1.2 发展历史…………………………………………………………………………… 2
1.3 应用领域…………………………………………………………………………… 2
1.3.1 计算机辅助设计…………………………………………………………… 2
1.3.2 虚拟现实环境……………………………………………………………… 3
1.3.3 数据可视化………………………………………………………………… 3
1.3.4 教育培训…………………………………………………………………… 4
1.3.5 计算机艺术………………………………………………………………… 4
1.3.6 图形用户界面……………………………………………………………… 5
1.4 编程软件…………………………………………………………………………… 6
1.5 OpenGL概述……………………………………………………………………… 6
1.5.1 OpenGL三维图形世界…………………………………………………… 6
1.5.2 OpenGL三维开发环境…………………………………………………… 7
1.5.3 OpenGL库文件…………………………………………………………… 7
1.5.4 OpenGL绘图方式………………………………………………………… 8
1.5.5 OpenGL绘制步骤………………………………………………………… 8
1.5.6 OpenGL基本功能………………………………………………………… 9
1.5.7 OpenGL库连接…………………………………………………………… 10
1.6 实践项目———茶壶绘制………………………………………………………… 10
1.6.1 茶壶绘制项目构思………………………………………………………… 10
1.6.2 茶壶绘制项目设计………………………………………………………… 10
1.6.3 茶壶绘制项目实施………………………………………………………… 11
1.6.4 茶壶绘制项目运行………………………………………………………… 13
【本章小结】……………………………………………………………………………… 14
【课后作业】……………………………………………………………………………… 14
第2章 图形变换………………………………………………………………………… 16
2.1 变换基础…………………………………………………………………………… 16
2.1.1 变换原理…………………………………………………………………… 16
2.1.2 基本变换步骤……………………………………………………………… 16
2.2 几何变换…………………………………………………………………………… 18
2.2.1 平移………………………………………………………………………… 18
2.2.2 旋转………………………………………………………………………… 18
2.2.3 缩放………………………………………………………………………… 19
2.3 投影变换…………………………………………………………………………… 19
2.3.1 正射投影…………………………………………………………………… 19
2.3.2 透视投影…………………………………………………………………… 20
2.4 视口变换…………………………………………………………………………… 21
2.4.1 视口变换定义……………………………………………………………… 21
2.4.2 视口变换函数……………………………………………………………… 21
2.5 实践项目———三角形变换………………………………………………………… 21
2.5.1 三角形变换项目构思……………………………………………………… 21
2.5.2 三角形变换项目设计……………………………………………………… 22
2.5.3 三角形变换项目实施……………………………………………………… 22
2.5.4 三角形变换项目运行……………………………………………………… 25
【本章小结】……………………………………………………………………………… 25
【课后作业】……………………………………………………………………………… 26
第3章 图形建模………………………………………………………………………… 27
3.1 基本建模概念……………………………………………………………………… 27
3.2 OpenGL基本建模………………………………………………………………… 28
3.2.1 OpenGL基本图形的绘制………………………………………………… 28
3.2.2 点(Point) ………………………………………………………………… 28
3.2.3 线(Line)…………………………………………………………………… 28
3.2.4 三角形(Triangles)………………………………………………………… 29
3.2.5 多边形(Polygon) ………………………………………………………… 29
3.2.6 扩展三维几何体…………………………………………………………… 29
3.3 Bézier曲线曲面…………………………………………………………………… 30
3.3.1 Bézier曲线定义…………………………………………………………… 31
3.3.2 Bézier曲线性质…………………………………………………………… 31
3.3.3 Bézier曲面………………………………………………………………… 31
3.4 实践项目———二维几何体绘制…………………………………………………… 31
3.4.1 二维几何体绘制项目构思………………………………………………… 31
3.4.2 二维几何体绘制项目设计………………………………………………… 32
3.4.3 二维几何体绘制项目实施………………………………………………… 32
3.4.4 二维几何体绘制项目运行………………………………………………… 37
3.5 实践项目———奥运五环绘制……………………………………………………… 38
3.5.1 奥运五环绘制项目构思…………………………………………………… 38
3.5.2 奥运五环绘制项目设计…………………………………………………… 38
3.5.3 奥运五环绘制项目实施…………………………………………………… 39
3.5.4 奥运五环绘制项目运行…………………………………………………… 42
3.6 实践项目———各国国旗绘制……………………………………………………… 42
3.6.1 各国国旗绘制项目构思…………………………………………………… 42
3.6.2 各国国旗绘制项目设计…………………………………………………… 43
3.6.3 各国国旗绘制项目实施…………………………………………………… 44
3.6.4 各国国旗绘制项目运行…………………………………………………… 47
3.7 实践项目———贝塞尔曲线绘制…………………………………………………… 47
3.7.1 贝塞尔曲线绘制项目构思………………………………………………… 47
3.7.2 贝塞尔曲线绘制项目设计………………………………………………… 48
3.7.3 贝塞尔曲线绘制项目实施………………………………………………… 48
3.7.4 贝塞尔曲线绘制项目运行………………………………………………… 49
3.8 实践项目———贝塞尔曲面绘制…………………………………………………… 49
3.8.1 贝塞尔曲面绘制项目构思………………………………………………… 49
3.8.2 贝塞尔曲面绘制项目设计………………………………………………… 50
3.8.3 贝塞尔曲面绘制项目实施………………………………………………… 50
3.8.4 贝塞尔曲面绘制项目运行………………………………………………… 51
【本章小结】……………………………………………………………………………… 51
【课后作业】……………………………………………………………………………… 52
第4章 颜色& 光照& 材质………………………………………………………… 54
4.1 颜色模型…………………………………………………………………………… 54
4.1.1 RGB颜色模型…………………………………………………………… 55
4.1.2 HSV颜色模型…………………………………………………………… 55
4.1.3 HSI颜色模型……………………………………………………………… 56
4.1.4 CMYK颜色模型………………………………………………………… 56
4.1.5 色彩空间的选择标准……………………………………………………… 56
4.2 OpenGL颜色……………………………………………………………………… 57
4.2.1 颜色立方体………………………………………………………………… 57
4.2.2 颜色模式…………………………………………………………………… 57
4.3 实践项目———彩色立方体………………………………………………………… 58
4.3.1 彩色立方体项目构思……………………………………………………… 58
4.3.2 彩色立方体项目设计……………………………………………………… 58
4.3.3 彩色立方体项目实施……………………………………………………… 58
4.3.4 彩色立方体项目运行……………………………………………………… 61
4.4 OpenGL光照……………………………………………………………………… 62
4.4.1 简单光照模型……………………………………………………………… 62
4.4.2 OpenGL光组成…………………………………………………………… 62
4.5 实践项目———光照壶……………………………………………………………… 63
4.5.1 光照壶项目构思…………………………………………………………… 63
4.5.2 光照壶项目设计…………………………………………………………… 63
4.5.3 光照壶项目实施…………………………………………………………… 64
4.5.4 光照壶项目运行…………………………………………………………… 65
4.6 OpenGL材质……………………………………………………………………… 66
4.6.1 材质定义…………………………………………………………………… 66
4.6.2 材质函数…………………………………………………………………… 66
4.7 实践项目———材质球……………………………………………………………… 66
4.7.1 材质球项目构思…………………………………………………………… 66
4.7.2 材质球项目设计…………………………………………………………… 66
4.7.3 材质球项目实施…………………………………………………………… 67
4.7.4 材质球项目运行…………………………………………………………… 71
4.8 单元组项目———别墅绘制………………………………………………………… 72
4.8.1 别墅绘制项目构思………………………………………………………… 72
4.8.2 别墅绘制项目设计………………………………………………………… 72
4.8.3 别墅绘制项目实施………………………………………………………… 72
4.8.4 别墅绘制项目运行………………………………………………………… 73
【本章小结】……………………………………………………………………………… 74
【课后作业】……………………………………………………………………………… 74
第5章 纹理映射………………………………………………………………………… 76
5.1 OpenGL纹理映射………………………………………………………………… 76
5.1.1 定义纹理…………………………………………………………………… 77
5.1.2 控制滤波…………………………………………………………………… 77
5.1.3 映射方式…………………………………………………………………… 78
5.1.4 绘制场景…………………………………………………………………… 78
5.2 实践项目———立方体贴图………………………………………………………… 78
5.2.1 立方体贴图项目构思……………………………………………………… 78
5.2.2 立方体贴图项目设计……………………………………………………… 79
5.2.3 立方体贴图项目实施……………………………………………………… 80
5.2.4 立方体贴图项目运行……………………………………………………… 81
5.3 单元组项目———宇宙太空绘制…………………………………………………… 82
5.3.1 宇宙太空绘制项目构思…………………………………………………… 82
5.3.2 宇宙太空绘制项目设计…………………………………………………… 82
5.3.3 宇宙太空绘制项目实施…………………………………………………… 83
5.3.4 宇宙太空绘制项目运行…………………………………………………… 85
【本章小结】……………………………………………………………………………… 86
【课后作业】……………………………………………………………………………… 86
第6章 用户交互………………………………………………………………………… 87
6.1 交互基础…………………………………………………………………………… 87
6.1.1 鼠标交互…………………………………………………………………… 87
6.1.2 键盘交互…………………………………………………………………… 88
6.2 实践项目———键盘交互…………………………………………………………… 88
6.2.1 键盘交互项目构思………………………………………………………… 88
6.2.2 键盘交互项目设计………………………………………………………… 88
6.2.3 键盘交互项目实施………………………………………………………… 89
6.2.4 键盘交互项目运行………………………………………………………… 90
6.3 单元组项目———行走的机器猫…………………………………………………… 91
6.3.1 行走的机器猫项目构思…………………………………………………… 91
6.3.2 行走的机器猫项目设计…………………………………………………… 91
6.3.3 行走的机器猫项目实施…………………………………………………… 92
6.3.4 行走的机器猫项目运行…………………………………………………… 95
【本章小结】……………………………………………………………………………… 97
【课后作业】……………………………………………………………………………… 97
第7章 粒子特效………………………………………………………………………… 98
7.1 粒子系统基本理解………………………………………………………………… 98
7.1.1 粒子系统定义……………………………………………………………… 98
7.1.2 粒子系统发展……………………………………………………………… 99
7.1.3 粒子系统应用……………………………………………………………… 99
7.1.4 粒子系统组成部分………………………………………………………… 99
7.2 实践项目———喷泉模拟………………………………………………………… 100
7.2.1 喷泉模拟项目构思……………………………………………………… 100
7.2.2 喷泉模拟项目设计……………………………………………………… 101
7.2.3 喷泉模拟项目实施……………………………………………………… 102
7.2.4 喷泉模拟项目运行……………………………………………………… 104
7.3 实践项目———火炬模拟………………………………………………………… 104
7.3.1 火炬模拟项目构思……………………………………………………… 104
7.3.2 火炬模拟项目设计……………………………………………………… 104
7.3.3 火炬模拟项目实施……………………………………………………… 105
7.3.4 火炬模拟项目运行……………………………………………………… 107
7.4 实践项目———烟花模拟………………………………………………………… 108
7.4.1 烟花模拟项目构思……………………………………………………… 108
7.4.2 烟花模拟项目设计……………………………………………………… 108
7.4.3 烟花模拟项目实施……………………………………………………… 108
7.4.4 烟花模拟项目运行……………………………………………………… 112
【本章小结】……………………………………………………………………………… 112
【课后作业】……………………………………………………………………………… 112
第8章 图像增强………………………………………………………………………… 114
8.1 人眼视觉特性…………………………………………………………………… 114
8.1.1 视觉非线性……………………………………………………………… 115
8.1.2 亮度敏感性……………………………………………………………… 115
8.1.3 视觉敏感度带通和视觉多通道………………………………………… 115
8.1.4 视觉的掩盖效应………………………………………………………… 116
8.1.5 视觉对颜色的感知特性………………………………………………… 116
8.2 图像增强基本算法……………………………………………………………… 116
8.2.1 空间域图像增强技术…………………………………………………… 116
8.2.2 频域图像增强技术……………………………………………………… 119
8.3 实践项目———对比度增强……………………………………………………… 122
8.3.1 对比度增强项目构思…………………………………………………… 122
8.3.2 对比度增强项目设计…………………………………………………… 123
8.3.3 对比度增强项目实施…………………………………………………… 123
8.3.4 对比度增强项目运行…………………………………………………… 126
【本章小结】……………………………………………………………………………… 127
【课后作业】……………………………………………………………………………… 127
第9章 图像恢复………………………………………………………………………… 128
9.1 图像恢复概述…………………………………………………………………… 128
9.1.1 图像恢复原理…………………………………………………………… 128
9.1.2 图像恢复发展…………………………………………………………… 129
9.2 图像恢复基本算法……………………………………………………………… 130
9.2.1 图像退化模型…………………………………………………………… 130
9.2.2 较经典的恢复方法……………………………………………………… 131
9.3 实践项目———图像恢复………………………………………………………… 132
9.3.1 图像恢复项目构思……………………………………………………… 132
9.3.2 图像恢复项目设计……………………………………………………… 132
9.3.3 图像恢复项目实施……………………………………………………… 132
9.3.4 图像恢复项目运行……………………………………………………… 133
【本章小结】……………………………………………………………………………… 134
【课后作业】……………………………………………………………………………… 134
第10章 图像分割……………………………………………………………………… 135
10.1 图像分割概述…………………………………………………………………… 135
10.1.1 图像分割背景…………………………………………………………… 135
10.1.2 图像分割应用…………………………………………………………… 136
10.2 图像分割理论…………………………………………………………………… 136
10.2.1 图像分割理论介绍……………………………………………………… 136
10.2.2 图像分割的发展过程…………………………………………………… 136
10.3 图像分割方法…………………………………………………………………… 137
10.3.1 基于区域的分割方法…………………………………………………… 137
10.3.2 基于边界的分割方法…………………………………………………… 138
10.4 实践项目———图像分割………………………………………………………… 139
10.4.1 图像分割项目构思……………………………………………………… 139
10.4.2 图像分割项目设计……………………………………………………… 140
10.4.3 图像分割项目实施……………………………………………………… 140
10.4.4 图像分割项目运行……………………………………………………… 142
【本章小结】……………………………………………………………………………… 142
【课后作业】……………………………………………………………………………… 143
第11章 综合实践项目………………………………………………………………… 144
11.1 仙剑项目构思…………………………………………………………………… 144
11.1.1 项目背景………………………………………………………………… 144
11.1.2 项目准备………………………………………………………………… 145
11.2 仙剑项目设计…………………………………………………………………… 145
11.2.1 项目流程设计…………………………………………………………… 145
11.2.2 项目界面设计…………………………………………………………… 146
11.2.3 项目交互设计…………………………………………………………… 148
11.3 仙剑项目实施…………………………………………………………………… 149
11.3.1 模型制作………………………………………………………………… 149
11.3.2 场景制作………………………………………………………………… 154
11.3.3 键盘交互实现…………………………………………………………… 156
11.3.4 程序代码………………………………………………………………… 157
11.4 仙剑项目运行…………………………………………………………………… 168
11.4.1 客栈内部效果…………………………………………………………… 168
11.4.2 白天场景运行效果……………………………………………………… 170
11.4.3 夜晚运行效果…………………………………………………………… 171
11.4.4 雾天运行效果…………………………………………………………… 172
11.4.5 下雪天运行效果………………………………………………………… 173
【本章小结】……………………………………………………………………………… 173
【课后作业】……………………………………………………………………………… 173
附录:学习知识要点及能力要点……………………………………………………… 175
参考文献…………………………………………………………………………………… 181

 

计算机图形图像编程的一个主要目的就是要利用计算机产生令人赏心悦目的真实感虚拟空间。为此,一般先建立目标图形所描述场景的几何表示,再采用某种光照模型,计算光源、纹理、材质添加后的效果。所以本教材在内容组织上除了讲解计算机图形、图像理论外,还引入了OpenGL、OpenCV 函数库,将OpenGL、OpenCV 函数库与计算机图形、图像理论相结合,使学生在学习理论的同时锻炼实践技能。
 
本教材共分11章。第1章讲授常用库函数OpengL,并且介绍了计算机图形、图像基本概念、发展历程以及应用领域,然后讲解OpenGL和VS2012平台链接方法,带领大家进入计算机编程世界。第2章至第7章分别为图形变换、图形建模、颜色& 光照& 材质、纹理映射、用户交互、粒子特效。第8章至第10章分别为图像增强、图像恢复、图像分割。每一章都由若干个项目案例构成,希望读者能基于项目制作流程独立完成项目构思、设计、实施、运行的全过程。第11章为三维场景漫游实践项目,是一个三级项目,也称之为本课程的终结项目,在掌握图形图像编程知识点后,将所有知识内容结合起来完成三维漫游场景设计与开发,达到理论与实践相结合的教学目的。
 
本教材内容组织为:由五级项目打基础,四级项目奠定基石,最终为三级项目服务这样一个循序渐进的学习过程。