图形学实验报告 13033901130301肖翰资料.docx
《图形学实验报告 13033901130301肖翰资料.docx》由会员分享,可在线阅读,更多相关《图形学实验报告 13033901130301肖翰资料.docx(21页珍藏版)》请在冰豆网上搜索。
图形学实验报告13033901130301肖翰资料
《计算机图形学》
实验报告
项目名称计算机图形学
专业班级软件工程1303班
学号3901130814
姓名肖翰
实验成绩:
批阅教师:
实验1《实验环境配置和基本图元绘制》
实验学时:
2实验地点:
实验日期:
一、实验目的
配置基本实验环境、安装软件包、建立工程和绘制基本图元,要求学会点、线、三角形、四边形的绘制方法,学会消息传递和响应机制,用一个实例完成上述要求。
二、实验内容
1.配置OpenGL绘图环境;
2.绘制点、线、三角形、四边形等基本图元。
三、实验方法
根据提供的帮助,将所需要的文件放入对应的目录下。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
配置OpenGL绘图环境成功,出现如下对话框。
绘制一个三角形:
6、实验结论
实验截图如上。
7、实验小结
由于初次接触计算机图形学,对于环境的配置比较简单的完成了,由于OpenGl是在VC6.0的环境下开发的所以上手比较简单,初步了解了计算机图形学的基本机制以及OpenGl语言绘制图形的基本框架,能够基本绘制一些基本图元。
对于OpenGl中的基本绘制图形的流程有了一定的理解,由于开始对OpenGl中的一些函数没有了解,不知道如何使用,经过基本图元的绘制知道了如何绘制OpenGl的图形。
实验2《绘制抛物线和正弦曲线》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习图形数据的计算、存储和图形绘制。
二、实验内容
1.计算抛物线和正弦曲线,将结果存放在一个数组中;
2.用OpenGL函数绘制相应的图形。
三、实验方法
根据正弦曲线函数y=sin(x)来绘制曲线。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
7、实验小结
本次试验根据直线的规律绘制出了正弦函数曲线,绘制抛物面和正弦曲线中关机的技术在于就算图形中的数据,知道了如何设置图形中的参数的点的位置,实验过程较为顺利,没有遇到比较大的问题。
实验3《图形变换》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习图形的基本几何变换。
二、实验内容
1.投影变换;
2.视口变换;
3.旋转、平移和缩放。
三、实验方法
图形变换一般是指将图形的几何信息经过几何变换后产生的新图形,可将简单图片生成复杂图片。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
对实验数据和结果进行分析描述,给出实验取得的成果和结论。
初始旋转
平移缩放
七、实验小结
在整个实验中,结合老师上课所讲内容以及从网上搜到的一部分资料,对图形变换有了一定的了解,知道了图形变换的几个函数。
如对物体实施平移glTranslatef()、旋转glRotatef()和放大缩小glScalef()。
若对物体进行比例变换,则调用glScalef(sx,sy,sz)。
其中三个参数X、Y、Z分别是轴向的比例变换因子。
视口变换就是将视景体内投影的物体显示在二维的视口平面上。
通常,都调用函数glViewport()来定义一个视口,这个过程类似于将照片放大或缩小。
实验4《颜色和光照》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习图形颜色和物体材质的设置、学习光源的设置。
二、实验内容
1.光源设置;
2.材质设置;
3.法向量设置。
三、实验方法
光照简介:
采用光照要做的工作包括:
创建光源,激活光照以及光源,以及定义物体的材质。
创建光源是要定义光源的特征,物体的材质则与光源一起决定到达人眼的光的颜色。
若光源颜
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
材质改变:
法向量设置:
光源设置:
七、实验小结
本次实验在老师讲解的基础上再加上一部分XX来的资料,自己尝试用不同的数据来观察变化。
也知道了如何利用光源来让图像消失。
实验5《显示列表》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习加快图形显示的技术。
二、实验内容
1.用显示列表输出文字;
2.用显示列表显示图形。
三、实验方法
显示列表的创建
显示列表的执行:
在建立显示列表以后就可以调用执行显示列表的函数来执行它,并且允许在程序中多次执行同一显示列表。
显示列表的管理:
为了避免意外删除,可以调用函数glGenList()来产生一个没有用过的显示列表,或调用glIsList()来显示指定的显示列表是否被占用。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
七、实验小结
本次实验在结束后大概总结下,学到了以下内容:
分配显示列表编号:
OpenGL允许多个显示列表同时存在。
创建显示列表实际上就是把各种OpenGL函数的调用装入到显示列表中。
使用glNewList开始装入,使用glEndList结束装入。
调用显示列表:
使用glCallList函数可以调用一个显示列表。
该函数有一个参数,表示要调用的显示列表的编号。
销毁显示列表可以回收资源。
使用glDeleteLists来销毁一串编号连续的显示列表。
实验6《纹理映射》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习真实感图形绘制技术。
二、实验内容
1.读取或生成纹理图像数据;
2.将纹理图像映射到物体表面。
三、实验方法
纹理映射(TextureMapping)是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
七、实验小结
在纹理映射的实现过程中遇到了很多问题,开始不知道使用哪一种格式的图像进行纹理映射,不知道如何映射到每个页面中。
然后经过在上网查找资料然后才完成了。
对于指定的多个纹理,要根据自己的需要映射到不同的面上,需要对位图创建一个数组,用来存储位图的名称,然后在初始化OpenGL的时候,可以读取这些位图,然后生成多个纹理存储到一个纹理数组中,接着就可以指定绘制的某个面,对该指定的面进行纹理映射。
实验7《复杂图形绘制1》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习样条曲线的绘制。
二、实验内容
1.绘制Bezier曲线;
2.绘制Hermite曲线。
三、实验方法
Bezier曲线是应用于二维图形的曲线。
曲线由顶点和控制点组成,通过改变控制点坐标可以改变曲线的形状。
Hermite曲线就是通过曲线的起点(P0)、终点(P1)、起点切向量(V0)和终点切向量(V1)来确定曲线的。
改变这四个参数,就可以控制Hermite曲线的形状。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
Bezier曲线:
六、实验结论
Bezier曲线:
Hermiter曲线
七、实验小结
本次实验的完成比较顺利,因为根据Bezier曲线的过程,在Bezier曲线的绘制中参考了实际的例子进行绘制,能够看明白绘制过程中所进行的操作。
实验8《复杂图形绘制2》
实验学时:
2实验地点:
实验日期:
一、实验目的
学习样条曲面绘制技术。
二、实验内容
1.绘制Bezier曲面。
2.将纹理图像映射到曲面。
三、实验方法
绘制Bezier曲面主要运用多个多边形逼近而成,,并通过少数几个控制点对其进行描述。
通过定义曲面和均匀网格绘制一个具有光照和明暗处理效果的Bezier曲面,并实现曲面的放大和缩小,绕x轴,y轴,z轴旋转。
四、实验步骤
1.准备算法;
2.编写代码;
3.修改错误;
4.完善程序。
五、实验结果
六、实验结论
七、实验小结
这个实验中涉及了较多图形操作所以实现起来有一定的难度,只实现了Bezier曲面的绘制,参考了实例中Bezier的绘制方法对其中的参数进行了修改看明白了曲线的绘制方法。