书籍详情
计算机图形学(VC++实现 第2版)
作者:于万波,于硕 著
出版社:清华大学出版社
出版时间:2017-03-01
ISBN:9787302461241
定价:¥39.00
购买这本书可以去
内容简介
本书是计算机图形学入门教程,以VC++与OpenGL为工具讲解计算机图形学以及动画制作的基本知识。第1章通过一些有趣的实例直观地展示了一些简单的计算机图形绘制与动画制作方法,同时让读者了解、熟悉并逐步掌握VC++绘图相关类及函数的使用;第2章讲解二维直线与曲线绘制方法以及区域填充的基本内容;第3章学习三维图形投影、消隐等内容;第4章通过一些典型实例介绍OpenGL;第5、6章讲解样条曲面、几何造型与光照模型;第7、8、9章研究分析建模与动画实例。本书适合作为计算机科学与技术、软件工程、信息与计算科学、数字媒体技术、机械与建筑设计等专业的计算机图形学教材,也可供对计算机图形动画制作感兴趣的程序设计人员参考。
作者简介
暂缺《计算机图形学(VC++实现 第2版)》作者简介
目录
第1章VC++绘图程序设计/1
1.1使用CDC类函数绘制图形1
1.1.1使用单文档程序绘图1
1.1.2绘制具有真实感的三维图形7
1.1.3交互绘图程序设计10
1.1.4绘制矩形15
1.1.5在指定位置输出文本16
1.2画笔与画刷19
1.2.1画笔类及其函数19
1.2.2画刷类20
1.3位图图像操作21
1.3.1提取位图上一点的颜色值21
1.3.2获取图像区域的颜色值23
1.4绘图与动画程序实例24
1.4.1小圆的弹性运动24
1.4.2抛物运动27
1.4.3小圆沿着螺旋线上升29
1.4.4逐帧动画制作31
1.4.5使用Timer事件函数绘制图形32
1.4.6移动鼠标进行书写35
1.5Win32应用程序中绘图与动画制作36
1.5.1用多种填充形式制作动画36
1.5.2使用颜色渐变制作动画37
习题138
第2章二维图形绘制与填充/43
2.1直线段绘制算法43
2.1.1使用直线方程计算函数值43
2.1.2DDA微分绘制方法44
2.1.3Bresenham算法45〖1〗计算机图形学(VC++实现)(第2版)目录[3]〖3〗2.2二次曲线绘制47
2.2.1使用方程绘制二次曲线48
2.2.2一般平面曲线的绘制50
2.2.3圆的绘制算法研究52
2.2.4抛物线的平移与旋转55
2.2.5二次贝塞尔曲线绘制算法56
2.3拟合曲线59
2.3.1*小二乘法拟合59
2.3.2贝塞尔曲线61
2.3.3B样条曲线65
2.4插值曲线66
2.4.1简单的逐段多项式插值方法67
2.4.2Hermite曲线67
2.4.3样条曲线68
2.5基于代数方程的基本规则图形填充70
2.5.1矩形与三角形填充70
2.5.2椭圆填充72
2.5.3抛物线围成的封闭区域填充73
2.6多边形填充73
2.6.1多边形填充的复杂性分析74
2.6.2扫描线填充75
2.6.3种子填充80
2.7二维分形图绘制82
2.7.1绘制树82
2.7.2绘制分形山84
习题285
第3章三维数据的二维投影/89
3.1三维数据投影89
3.1.1三维数据与二维显示89
3.1.2绘制空间直角坐标系90
3.2三维螺旋线的平行投影91
3.2.1参数方程及三维空间点的二维绘制91
3.2.2不同角度的三维螺旋线投影93
3.3三维数据的透视投影95
3.3.1平行投影与透视投影95
3.3.2观察坐标系下的一点透视投影96
3.4裁剪98
3.4.1二维图形裁剪98
3.4.2三维图形裁剪98
3.5视点变化下的多面体绘制99
3.5.1线框正方体投影绘制99
3.5.2视点变化下的线框正方体绘制101
3.6隐藏面检测101
3.6.1隐藏线面101
3.6.2一个正方体的六个面102
3.6.3背面检测方法103
3.6.4多面体的隐藏面计算104
3.6.5其他检测方法104
习题3106
第4章OpenGL/108
4.1VC++中运行OpenGL程序108
4.1.1在VC++中加入glut108
4.1.2绘制点与线109
4.1.3绘制三角形与四边形110
4.2OpenGL函数解析(一)114
4.2.1颜色设置函数glClearColor与glColor114
4.2.2绘制函数glBegin与glEnd115
4.2.3窗口初始化函数glutInitWindowSize等116
4.2.4OpenGL核心函数116
4.3OpenGL函数解析(二)117
4.3.1调用函数绘制形体117
4.3.2裁剪函数glOrtho119
4.3.3glutSolidSphere等119
4.3.4光照函数glLight120
4.3.5OpenGL实用函数120
4.4一个运动的正方体121
4.4.1三维正方体绘制与函数gluLookAt121
4.4.2OpenGL旋转函数glRotate123
4.4.3使用鼠标控制旋转轴125
4.5具有颜色插值效果的多面体126
4.5.1多面体绘制126
4.5.2修改参数128
4.6OpenGL函数解析(三)129
4.6.1平移函数glTranslate与缩放函数glScale129
4.6.2面法向设置函数glNormal3fv129
4.6.3双缓存函数glutSwapBuffers129
4.6.4透视投影函数glFrustum130
4.6.5工具函数glut131
4.7OpenGL交互操作函数132
4.7.1鼠标操作132
4.7.2键盘操作133
4.7.3菜单制作134
4.8绘制实例135
4.8.1绘制五角星135
4.8.2运动的彩色正方体137
习题4140
第5章样条曲面/147
5.1样条曲线147
5.1.1三维空间贝塞尔曲线147
5.1.2曲线的拼接148
5.1.3三维空间B样条曲线148
5.1.4三维空间分段插值曲线151
5.2贝塞尔曲面151
5.2.1贝塞尔曲面的定义152
5.2.2双一次贝塞尔曲面152
5.2.3双二次贝塞尔曲面154
5.2.4双三次贝塞尔曲面的16个控制点155
5.2.5曲面特性157
5.3B样条曲面绘制157
5.3.1B样条曲面定义157
5.3.2双二次B样条曲面158
5.4OpenGL曲线曲面绘制160
5.4.1曲线绘制160
5.4.2曲面绘制162
5.4.3绘制光滑曲面165
5.5OpenGL函数解析(四)167
5.5.1计算二维网格函数glEvalMesh167
5.5.2二维求值函数glMap2f168
习题5169
第6章几何造型与光照模型/174
6.1几何造型基本单元的组织174
6.1.1线框模型175
6.1.2表面模型175
6.1.3实体模型176
6.2实体模型构造方法177
6.2.1边界表示法177
6.2.2分解表示法178
6.2.3扫描造型法179
6.3场景构造与模型的重用180
6.3.1场景构造180
6.3.2模型重用181
6.3.3布尔运算181
6.4三维数据模型: 地形图182
6.4.1绘制地形图程序182
6.4.2程序结构185
6.4.3读取数据文件186
6.4.4网格地形绘制186
6.4.5加入灯光效果188
6.5OpenGL中的光照效果189
6.5.1按右键移动光源189
6.5.2安装多个光源192
6.5.3多个光源下的多个球体194
6.6OpenGL光照函数195
6.6.1关于glLight195
6.6.2多面体的光照效果196
6.7简单光照模型198
6.7.1镜面反射与视点位置198
6.7.2漫反射与环境光200
6.7.3Phong光照模型201
6.8明暗插值与阴影生成202
6.8.1明暗插值方法202
6.8.2阴影生成203
6.8.3透明性203
6.8.4整体光照模型204
习题6204
第7章纹理映射: 飘动的图像与旋转的地球/208
7.1使用Win32应用程序运行OpenGL程序208
7.1.1关于Win32应用程序208
7.1.2一个飘动的图像210
7.1.3修改程序制作更多的飘动效果220
7.2构建OpenGL程序运行框架223
7.2.1函数CreateGLWindow223
7.2.2函数KillGLWindow223
7.2.3函数LRESULT CALLBACK WndProc224
7.2.4函数int WINAPI WinMain224
7.2.5OpenGL的glaux辅助函数225
7.3网格制作与图像映射226
7.3.1顶点生成226
7.3.2网格制作226
7.3.3运动的网格227
7.3.4图像定义为纹理228
7.3.5图像映射到网格228
7.4OpenGL函数解析(五)229
7.4.1OpenGL纹理映射229
7.4.2OpenGL纹理定义函数glTexImage229
7.4.3OpenGL纹理控制函数glTexParameter230
7.4.4纹理与多边形颜色的融合230
7.4.5OpenGL纹理坐标生成函数glTexCoord231
7.4.6OpenGL纹理映射函数应用实例232
7.5旋转的地球235
7.5.1程序实现235
7.5.2去掉图像的白边238
7.5.3球的上下左右移动238
习题7239
第8章不规则图形: 粒子系统与迭代吸引子/241
8.1使用粒子系统制作爆炸效果241
8.1.1粒子系统241
8.1.2爆炸效果的程序实现241
8.1.3程序解析246
8.1.4修改程序实现更多效果248
8.1.5使用VC++制作爆炸效果250
8.1.6使用3ds Max制作下雪动画252
8.2基于图像的图形绘制254
8.2.1图像动画制作254
8.2.2基于图像的三维图形建模255
8.3OpenGL图像操作256
8.3.1二值图形绘制256
8.3.2读写像素258
8.3.3像素复制261
8.4OpenGL函数解析(六)263
8.4.1OpenGL函数glDrawBuffer与glReadBuffer263
8.4.2OpenGL函数glutBitmapCharacter264
8.4.3OpenGL图像操作函数266
8.5迭代吸引子图形绘制266
8.5.1正弦函数与二元二次随机多项式函数迭代267
8.5.2调整正弦函数观察迭代结果268
8.5.3离散余弦变换基函数作为辅助函数269
习题8271
第9章飞机动画制作与改进/275
9.1使用单文档运行OpenGL程序275
9.1.1单文档OpenGL程序275
9.1.2星空闪烁动画279
9.1.3将项目框架加入到VC++选项中281
9.2飞机模型282
9.2.1运行飞机动画游戏程序282
9.2.2飞机数据模型分析284
9.2.3OpenGL材质函数glMaterialfv291
9.3动画制作294
9.3.1飞机的飞行294
9.3.2发射子弹295
9.3.3键盘的使用296
9.3.4关于动画297
习题9298
附录A期末试题/299
参考文献/317
1.1使用CDC类函数绘制图形1
1.1.1使用单文档程序绘图1
1.1.2绘制具有真实感的三维图形7
1.1.3交互绘图程序设计10
1.1.4绘制矩形15
1.1.5在指定位置输出文本16
1.2画笔与画刷19
1.2.1画笔类及其函数19
1.2.2画刷类20
1.3位图图像操作21
1.3.1提取位图上一点的颜色值21
1.3.2获取图像区域的颜色值23
1.4绘图与动画程序实例24
1.4.1小圆的弹性运动24
1.4.2抛物运动27
1.4.3小圆沿着螺旋线上升29
1.4.4逐帧动画制作31
1.4.5使用Timer事件函数绘制图形32
1.4.6移动鼠标进行书写35
1.5Win32应用程序中绘图与动画制作36
1.5.1用多种填充形式制作动画36
1.5.2使用颜色渐变制作动画37
习题138
第2章二维图形绘制与填充/43
2.1直线段绘制算法43
2.1.1使用直线方程计算函数值43
2.1.2DDA微分绘制方法44
2.1.3Bresenham算法45〖1〗计算机图形学(VC++实现)(第2版)目录[3]〖3〗2.2二次曲线绘制47
2.2.1使用方程绘制二次曲线48
2.2.2一般平面曲线的绘制50
2.2.3圆的绘制算法研究52
2.2.4抛物线的平移与旋转55
2.2.5二次贝塞尔曲线绘制算法56
2.3拟合曲线59
2.3.1*小二乘法拟合59
2.3.2贝塞尔曲线61
2.3.3B样条曲线65
2.4插值曲线66
2.4.1简单的逐段多项式插值方法67
2.4.2Hermite曲线67
2.4.3样条曲线68
2.5基于代数方程的基本规则图形填充70
2.5.1矩形与三角形填充70
2.5.2椭圆填充72
2.5.3抛物线围成的封闭区域填充73
2.6多边形填充73
2.6.1多边形填充的复杂性分析74
2.6.2扫描线填充75
2.6.3种子填充80
2.7二维分形图绘制82
2.7.1绘制树82
2.7.2绘制分形山84
习题285
第3章三维数据的二维投影/89
3.1三维数据投影89
3.1.1三维数据与二维显示89
3.1.2绘制空间直角坐标系90
3.2三维螺旋线的平行投影91
3.2.1参数方程及三维空间点的二维绘制91
3.2.2不同角度的三维螺旋线投影93
3.3三维数据的透视投影95
3.3.1平行投影与透视投影95
3.3.2观察坐标系下的一点透视投影96
3.4裁剪98
3.4.1二维图形裁剪98
3.4.2三维图形裁剪98
3.5视点变化下的多面体绘制99
3.5.1线框正方体投影绘制99
3.5.2视点变化下的线框正方体绘制101
3.6隐藏面检测101
3.6.1隐藏线面101
3.6.2一个正方体的六个面102
3.6.3背面检测方法103
3.6.4多面体的隐藏面计算104
3.6.5其他检测方法104
习题3106
第4章OpenGL/108
4.1VC++中运行OpenGL程序108
4.1.1在VC++中加入glut108
4.1.2绘制点与线109
4.1.3绘制三角形与四边形110
4.2OpenGL函数解析(一)114
4.2.1颜色设置函数glClearColor与glColor114
4.2.2绘制函数glBegin与glEnd115
4.2.3窗口初始化函数glutInitWindowSize等116
4.2.4OpenGL核心函数116
4.3OpenGL函数解析(二)117
4.3.1调用函数绘制形体117
4.3.2裁剪函数glOrtho119
4.3.3glutSolidSphere等119
4.3.4光照函数glLight120
4.3.5OpenGL实用函数120
4.4一个运动的正方体121
4.4.1三维正方体绘制与函数gluLookAt121
4.4.2OpenGL旋转函数glRotate123
4.4.3使用鼠标控制旋转轴125
4.5具有颜色插值效果的多面体126
4.5.1多面体绘制126
4.5.2修改参数128
4.6OpenGL函数解析(三)129
4.6.1平移函数glTranslate与缩放函数glScale129
4.6.2面法向设置函数glNormal3fv129
4.6.3双缓存函数glutSwapBuffers129
4.6.4透视投影函数glFrustum130
4.6.5工具函数glut131
4.7OpenGL交互操作函数132
4.7.1鼠标操作132
4.7.2键盘操作133
4.7.3菜单制作134
4.8绘制实例135
4.8.1绘制五角星135
4.8.2运动的彩色正方体137
习题4140
第5章样条曲面/147
5.1样条曲线147
5.1.1三维空间贝塞尔曲线147
5.1.2曲线的拼接148
5.1.3三维空间B样条曲线148
5.1.4三维空间分段插值曲线151
5.2贝塞尔曲面151
5.2.1贝塞尔曲面的定义152
5.2.2双一次贝塞尔曲面152
5.2.3双二次贝塞尔曲面154
5.2.4双三次贝塞尔曲面的16个控制点155
5.2.5曲面特性157
5.3B样条曲面绘制157
5.3.1B样条曲面定义157
5.3.2双二次B样条曲面158
5.4OpenGL曲线曲面绘制160
5.4.1曲线绘制160
5.4.2曲面绘制162
5.4.3绘制光滑曲面165
5.5OpenGL函数解析(四)167
5.5.1计算二维网格函数glEvalMesh167
5.5.2二维求值函数glMap2f168
习题5169
第6章几何造型与光照模型/174
6.1几何造型基本单元的组织174
6.1.1线框模型175
6.1.2表面模型175
6.1.3实体模型176
6.2实体模型构造方法177
6.2.1边界表示法177
6.2.2分解表示法178
6.2.3扫描造型法179
6.3场景构造与模型的重用180
6.3.1场景构造180
6.3.2模型重用181
6.3.3布尔运算181
6.4三维数据模型: 地形图182
6.4.1绘制地形图程序182
6.4.2程序结构185
6.4.3读取数据文件186
6.4.4网格地形绘制186
6.4.5加入灯光效果188
6.5OpenGL中的光照效果189
6.5.1按右键移动光源189
6.5.2安装多个光源192
6.5.3多个光源下的多个球体194
6.6OpenGL光照函数195
6.6.1关于glLight195
6.6.2多面体的光照效果196
6.7简单光照模型198
6.7.1镜面反射与视点位置198
6.7.2漫反射与环境光200
6.7.3Phong光照模型201
6.8明暗插值与阴影生成202
6.8.1明暗插值方法202
6.8.2阴影生成203
6.8.3透明性203
6.8.4整体光照模型204
习题6204
第7章纹理映射: 飘动的图像与旋转的地球/208
7.1使用Win32应用程序运行OpenGL程序208
7.1.1关于Win32应用程序208
7.1.2一个飘动的图像210
7.1.3修改程序制作更多的飘动效果220
7.2构建OpenGL程序运行框架223
7.2.1函数CreateGLWindow223
7.2.2函数KillGLWindow223
7.2.3函数LRESULT CALLBACK WndProc224
7.2.4函数int WINAPI WinMain224
7.2.5OpenGL的glaux辅助函数225
7.3网格制作与图像映射226
7.3.1顶点生成226
7.3.2网格制作226
7.3.3运动的网格227
7.3.4图像定义为纹理228
7.3.5图像映射到网格228
7.4OpenGL函数解析(五)229
7.4.1OpenGL纹理映射229
7.4.2OpenGL纹理定义函数glTexImage229
7.4.3OpenGL纹理控制函数glTexParameter230
7.4.4纹理与多边形颜色的融合230
7.4.5OpenGL纹理坐标生成函数glTexCoord231
7.4.6OpenGL纹理映射函数应用实例232
7.5旋转的地球235
7.5.1程序实现235
7.5.2去掉图像的白边238
7.5.3球的上下左右移动238
习题7239
第8章不规则图形: 粒子系统与迭代吸引子/241
8.1使用粒子系统制作爆炸效果241
8.1.1粒子系统241
8.1.2爆炸效果的程序实现241
8.1.3程序解析246
8.1.4修改程序实现更多效果248
8.1.5使用VC++制作爆炸效果250
8.1.6使用3ds Max制作下雪动画252
8.2基于图像的图形绘制254
8.2.1图像动画制作254
8.2.2基于图像的三维图形建模255
8.3OpenGL图像操作256
8.3.1二值图形绘制256
8.3.2读写像素258
8.3.3像素复制261
8.4OpenGL函数解析(六)263
8.4.1OpenGL函数glDrawBuffer与glReadBuffer263
8.4.2OpenGL函数glutBitmapCharacter264
8.4.3OpenGL图像操作函数266
8.5迭代吸引子图形绘制266
8.5.1正弦函数与二元二次随机多项式函数迭代267
8.5.2调整正弦函数观察迭代结果268
8.5.3离散余弦变换基函数作为辅助函数269
习题8271
第9章飞机动画制作与改进/275
9.1使用单文档运行OpenGL程序275
9.1.1单文档OpenGL程序275
9.1.2星空闪烁动画279
9.1.3将项目框架加入到VC++选项中281
9.2飞机模型282
9.2.1运行飞机动画游戏程序282
9.2.2飞机数据模型分析284
9.2.3OpenGL材质函数glMaterialfv291
9.3动画制作294
9.3.1飞机的飞行294
9.3.2发射子弹295
9.3.3键盘的使用296
9.3.4关于动画297
习题9298
附录A期末试题/299
参考文献/317
猜您喜欢