-
内容大纲
本书是计算机图形学入门教程,以VC++与OpenGL为工具讲解计算机图形学以及动画制作的基本方法和原理。
第1章使用VC++绘图相关类和函数实现一些有趣的实例,直观地展示一些简单的计算机图形绘制与动画制作方法;第2章讲解二维直线段与曲线绘制方法以及区域填充的基本内容;第3章讲解三维图形投影、消隐等内容;第4章通过一些典型实例介绍OpenGL;第5~6章讲解样条曲面、几何造型与光照模型;第7~9章给出了基于OpenGL的图像飘动、地球旋转、爆炸效果、飞机动画等建模与动画实例。
本书适用于计算机科学与技术、软件工程、信息与计算科学、数字媒体技术、机械与建筑设计等专业的“计算机图形学”课程教材,也可供对计算机图形动画制作感兴趣的研究生及程序设计人员参考。 -
作者介绍
-
目录
第1章 VC++绘图程序设计
1.1 使用CDC类函数绘制图形
1.1.1 使用单文档程序绘图
1.1.2 绘制具有真实感的三维图形
1.1.3 交互绘图程序设计
1.1.4 绘制矩形
1.1.5 在指定位置输出文本
1.2 画笔与画刷
1.2.1 画笔类及其函数
1.2.2 画刷类
1.3 位图图像操作
1.3.1 提取位图上一点的颜色值
1.3.2 获取图像区域的颜色值
1.4 绘图与动画程序实例
1.4.1 小圆的弹性运动
1.4.2 抛物运动
1.4.3 小圆沿着螺旋线上升
1.4.4 逐帧动画制作
1.4.5 使用Timer事件函数绘制图形
1.4.6 移动鼠标进行书写
1.5 Win32应用程序中绘图与动画制作
1.5.1 用多种填充形式制作动画
1.5.2 使用颜色渐变制作动画
习题
第2章 二维图形绘制与填充
2.1 直线绘制算法
2.1.1 使用直线方程计算函数值绘制直线段
2.1.2 DDA微分绘制方法
2.1.3 Bresenham算法
2.2 基于方程的曲线描点绘制
2.2.1 使用方程绘制一般二次曲线
2.2.2 使用方程绘制二次有理贝塞尔曲线
2.2.3 一般平面曲线的绘制
2.2.4 抛物线的平移与旋转
2.3 圆的绘制算法研究
2.4 二次贝塞尔曲线绘制
2.4.1 使用参数方程绘制二次贝塞尔曲线
2.4.2 二次贝塞尔曲线快速绘制算法
2.5 拟合曲线
2.5.1 最小二乘法拟合
2.5.2 贝塞尔曲线
2.5.3 B样条曲线
2.6 插值曲线
2.6.1 简单的逐段多项式插值方法
2.6.2 Hermite曲线
2.6.3 样条曲线
2.7 基于代数方程的基本规则图形填充
2.7.1 矩形与三角形填充
2.7.2 椭圆填充
2.7.3 抛物线围成的封闭区域填充
2.8 多边形填充
2.8.1 多边形填充的复杂性分析
2.8.2 扫描线填充
2.8.3 种子填充
2.9 二维分形图绘制
2.9.1 绘制树
2.9.2 绘制分形山
习题
第3章 三维数据的二维投影
3.1 三维数据投影
3.1.1 三维数据与二维显示
3.1.2 绘制空间直角坐标系
3.2 三维螺旋线的平行投影
3.2.1 参数方程及三维空间点的二维绘制
3.2.2 不同角度的三维螺旋线投影
3.3 三维数据的透视投影
3.3.1 平行投影与透视投影
3.3.2 观察坐标系下的一点透视投影
3.4 裁剪
3.4.1 二维图形裁剪
3.4.2 三维图形裁剪
3.5 视点变化下的多面体绘制
3.5.1 线框正方体投影绘制
3.5.2 视点变化下的线框正方体绘制
3.6 隐藏面检测
3.6.1 隐藏线面
3.6.2 一个正方体的六个面
3.6.3 背面检测方法
3.6.4 多面体的隐藏面计算
3.6.5 其他检测方法
习题
第4章 OpenGL
4.1 VC++ Source File运行OpenGL程序
4.1.1 在VC++中加入glut
4.1.2 绘制点与线
4.1.3 绘制三角形与四边形
4.2 OpenGL函数解析(一)
4.2.1 颜色设置函数glClearColor()与glColor()
4.2.2 绘制函数glBegin()与glEnd()
4.2.3 窗口初始化函数glutInitWindowSize()等
4.2.4 OpenGL核心函数
4.3 OpenGL函数解析(二)
4.3.1 调用函数绘制形体
4.3.2 裁剪函数glOrtho()
4.3.3 形体函数glutSolidSphere()等
4.3.4 光照函数glLight()
4.3.5 OpenGL实用函数
4.4 一个运动的正方体
4.4.1 三维正方体绘制与函数gluLookAt()
4.4.2 旋转函数glRotatef()
4.4.3 使用鼠标控制旋转轴
4.5 具有颜色插值效果的多面体
4.5.1 多面体绘制
4.5.2 修改参数
4.6 OpenGL函数解析(三)
4.6.1 平移函数glTranslate()与缩放函数glScalef()
4.6.2 面法向设置函数glNormal3fv()
4.6.3 双缓存函数glutSwapBuffers()
4.6.4 透视投影函数glFrustum()
4.6.5 工具函数glut
4.7 OpenGL交互操作函数
4.7.1 鼠标操作
4.7.2 键盘操作
4.7.3 菜单制作
4.8 绘制实例
4.8.1 绘制五角星
4.8.2 运动的彩色正方体
习题
第5章 样条曲面
5.1 三维空间样条曲线
5.1.1 三维空间贝塞尔曲线
5.1.2 曲线的拼接
5.1.3 三维空间B样条曲线
5.1.4 三维空间分段插值曲线
5.2 贝塞尔曲面
5.2.1 贝塞尔曲面的定义
5.2.2 双一次贝塞尔曲面
5.2.3 双二次贝塞尔曲面
5.2.4 双三次贝塞尔曲面的16个控制点
5.2.5 曲面特性
5.3 B样条曲面绘制
5.3.1 B样条曲面定义
5.3.2 双二次B样条曲面
5.4 OpenGL曲线曲面绘制
5.4.1 曲线绘制
5.4.2 曲面绘制
5.4.3 绘制光滑曲面
5.5 OpenGL函数解析(四)
5.5.1 计算二维网格函数glEvalMesh()
5.5.2 二维求值函数glMap2f()
习题
第6章 几何造型与光照模型
6.1 几何造型基本单元的组织
6.1.1 线框模型
6.1.2 表面模型
6.1.3 实体模型
6.2 实体模型构造方法
6.2.1 边界表示法
6.2.2 分解表示法
6.2.3 扫描造型法
6.3 场景构造与模型的重用
6.3.1 场景构造
6.3.2 模型重用
6.3.3 布尔运算
6.4 三维数据模型: 地形图
6.4.1 绘制地形图程序
6.4.2 程序结构
6.4.3 读取数据文件
6.4.4 网格地形绘制
6.4.5 加入灯光效果
6.5 OpenGL中的光照效果
6.5.1 按右键移动光源
6.5.2 安装多个光源
6.5.3 多个光源下的多个球体
6.6 OpenGL光照函数
6.6.1 关于glLight()
6.6.2 多面体的光照效果
6.7 简单光照模型
6.7.1 镜面反射与视点位置
6.7.2 漫反射与环境光
6.7.3 Phong光照模型
6.8 明暗插值与阴影生成
6.8.1 明暗插值方法
6.8.2 阴影生成
6.8.3 透明性
6.8.4 整体光照模型
习题
第7章 纹理映射: 飘动的图像与旋转的地球
7.1 使用Win32应用程序运行OpenGL程序
7.1.1 关于Win32应用程序
7.1.2 一个飘动的图像
7.1.3 修改程序制作更多的飘动效果
7.2 构建OpenGL程序运行框架
7.2.1 函数CreateGLWindow()
7.2.2 函数KillGLWindow()
7.2.3 函数LRESULT CALLBACK WndProc()
7.2.4 函数int WINAPI WinMain()
7.2.5 OpenGL的glaux()辅助函数
7.3 网格制作与图像映射
7.3.1 顶点生成
7.3.2 网格制作
7.3.3 运动的网格
7.3.4 图像定义为纹理
7.3.5 图像映射到网格
7.4 OpenGL函数解析(五)
7.4.1 OpenGL纹理映射
7.4.2 OpenGL纹理定义函数glTexImage()
7.4.3 OpenGL纹理控制函数glTexParameter()
7.4.4 纹理与多边形颜色的融合
7.4.5 OpenGL纹理坐标生成函数gltexCoord()
7.4.6 OpenGL纹理映射函数应用实例
7.5 旋转的地球
7.5.1 程序实现
7.5.2 去掉图像的白边
7.5.3 球的上下左右移动
习题
第8章 不规则图形: 粒子系统与迭代吸引子
8.1 使用粒子系统制作爆炸效果
8.1.1 粒子系统
8.1.2 爆炸效果的程序实现
8.1.3 程序解析
8.1.4 修改程序实现更多效果
8.1.5 使用VC++制作爆炸效果
8.1.6 使用3ds Max制作下雪动画
8.2 基于图像的图形绘制
8.2.1 图像动画制作
8.2.2 基于图像的三维图形建模
8.3 OpenGL图像操作
8.3.1 二值图形绘制
8.3.2 读写像素
8.3.3 像素复制
8.4 OpenGL函数解析(六)
8.4.1 OpenGL函数glDrawBuffery()与glReadBuffer()
8.4.2 OpenGL函数glutBitmapCharacter()
8.4.3 OpenGL图像操作函数
8.5 迭代吸引子图形绘制
8.5.1 正弦函数与二元二次随机多项式函数迭代
8.5.2 调整正弦函数观察迭代结果
8.5.3 离散余弦变换基函数作为辅助函数
习题
第9章 飞机动画制作与改进
9.1 使用单文档运行OpenGL程序
9.1.1 单文档OpenGL程序
9.1.2 星空闪烁动画
9.1.3 将项目框架加入VC++选项
9.2 飞机模型
9.2.1 运行飞机动画游戏程序
9.2.2 飞机数据模型分析
9.2.3 OpenGL材质函数glMaterialfv()
9.3 动画制作
9.3.1 飞机的飞行
9.3.2 发射子弹
9.3.3 键盘的使用
9.3.4 关于动画
习题
附录A期末试题
A.1 期末考试试卷(一)
A.2 期末考试试卷(二)
A.3 期末考试试卷(三)
A.4 期末考试试卷(四)
A.5 期末考试试卷(五)
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...