实验指导书计算机图形学.docx
- 文档编号:7960275
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:14
- 大小:180.58KB
实验指导书计算机图形学.docx
《实验指导书计算机图形学.docx》由会员分享,可在线阅读,更多相关《实验指导书计算机图形学.docx(14页珍藏版)》请在冰豆网上搜索。
实验指导书计算机图形学
《计算机图形学》
实验指导书
目录
目录1
概述2
实验1熟悉实验环境3
1.1实验要求和目的3
1.2实验课时3
实验2直线的生成4
2.1实验要求和目的4
2.2实验课时4
2.3实验环境4
2.4实验平台简介:
4
2.5思考题(选做)5
实验3多边形扫描转换算法7
3.1实验要求和目的7
3.2实验课时7
3.3实验环境7
3.4实验平台简介:
7
实验4BSpline曲线绘制10
4.1实验要求和目的10
4.2实验课时10
4.3实验环境10
4.4实验平台介绍10
实验5光照模型(IlluminationModel)13
5.1实验要求和目的13
5.2思考题13
5.3实验课时13
5.4实验环境13
5.5实验平台介绍13
附录A:
实验报告17
概述
(1)实验概述
运用某种程序设计语言设计并实现计算机图形学的直线、曲线、简单多面体(四面体)等基本图形元素的表示和绘制,以检验和巩固计算机图形学中的基本知识、加深对本课程原理、方法和技术的理解,锻炼和培养学生实际操作技能和解决实际问题的能力,使学生熟悉解决实际问题的过程。
(2)实验目的和要求
实验目的是检验和巩固所学知识与方法,通过实现基本图形元的表示和绘制过程,理解并掌握计算机图形学的原理、方法和技术,并灵活运用它们解决实际问题。
要求理解各实验相关的原理和实现方法,通过这些实验的训练,加深对课程中原理、方法和技术的理解,验证和巩固计算机图形学中的基本知识,锻炼和培养学生熟悉图形编程环境,理解课程中基本问题的求解算法和性能改进方法,并对结果进行充分测试。
(3)主要原理与概念
一般来说,计算机图形学的基本内容包括图形的表示(如三维形体的表示,曲线、曲面的表示等)、图形变换和观察、图形生成(基本图形生成,消隐、真实感绘制等)三个方面,涉及大量数据结构、算法。
本试验大纲主要涉及到多面体表示法、直线扫描生成、多边形填充、平行投影变换、消隐算法等概念和算法。
(4)实验环境
VisualC++6.0
(5)实验内容
⏹实验一:
实验环境介绍
⏹实验二:
直线生成算法
⏹实验三:
多边形扫描转换
⏹实验四:
自由曲线绘制
⏹实验五:
光照模型(Illumination)
实验1熟悉实验环境
1.1实验要求和目的
熟悉实验环境:
熟悉VisualC++的图形编程环境;掌握VisualC++中GDI(图形设备接口)、画笔、画刷等基本概念;掌握基本绘图函数;
1.2实验课时
1学时
实验2直线的生成
2.1实验要求和目的
理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力;
编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。
2.2实验课时
3学时
2.3实验环境
⏹开发环境:
VisualC++6.0
⏹实验平台:
Experiment_Frame_One(自制平台)
2.4实验平台简介:
本实验提供名为Experiment_Frame_One的平台,该平台提供基本绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham算法,并进行分析。
⏹平台界面:
如图21所示
⏹设置:
通过view->setting菜单进入,如图22所示
⏹输入:
通过view->input…菜单进入.如图23所示
⏹实现算法:
◆DDA算法:
voidCExperiment_Frame_OneView:
:
DDA(intX0,intY0,intX1,intY1)
◆Mid_Bresenham算法:
voidCExperiment_Frame_OneView:
:
Mid_Bresenham(intX0,intY0,intX1,intY1)
2.5思考题(选做)
如何测试比较算法的性能?
⏹提示1:
因为绘制1条直线时间很短,所以需要绘制大量直线才能比较它们之间的性能;
⏹提示2:
drawpixel需要耗费时间,但它的时间性能和直线绘制算法无关,因此在比较不同算法性能时,应该屏蔽它的影响,如何屏蔽?
图21总界面
图22设置界面
图23输入界面
实验3多边形扫描转换算法
3.1实验要求和目的
理解多边形扫描转换的原理;掌握典型多边形扫描转换算法;掌握步处理、分析实验数据的能力;
●编程实现基本X-扫描线转换算法(必做);
●编程实现有效边表转换算法(选做)
3.2实验课时
4学时
3.3实验环境
本试验提供自带实验平台
●开发环境:
VisualC++6.0
●实验平台:
Polygon_Conversion(自制平台)
3.4实验平台简介:
本实验提供名为Polygon_Conversion的平台,该平台提供基本绘制、设置、输入功能,学生在此基础上实现X-扫描线算法和有效边表转换算法。
●平台界面:
如图31所示
●多边形输入,界面如图32所示:
⏹用户按【功能】【输入多边形……】菜单开始输入多边形;
⏹单击鼠标左键输入多边形顶点;
⏹点击鼠标右键结束多边形输入,并将最后一个顶点和第一个顶点进行连接;
●参数设置:
界面如图33所示
⏹用户按“【功能】【设置……】”启动设置对话框
⏹设置内容:
◆填充色
◆是否填充多边形
◆选择转换算法
⏹实现扫描转换算法
◆X-扫描线转换算法:
voidCPolygon_ConversionView:
:
X_Scan_Line_Conersion
(intVertices[][2],intVertexNum)
◆有效边表转换算法:
voidCPolygon_ConversionView:
:
Active_Edge_Table_Conersion
(intVertices[][2],intVertexNum)
图31实验平台界面
图32输入多边型
图33设置对话框
实验4BSpline曲线绘制
4.1实验要求和目的
理解掌握自由曲线生成的基本原理和方法;编程实现三次B样条曲线:
●均匀周期性B样条曲线
●开放均匀B样条曲线
4.2实验课时
4学时
4.3实验环境
本试验提供自带实验平台
●开发环境:
VisualC++6.0
●实验平台:
Free_Curve(自制平台)
4.4实验平台介绍
本实验提供名为Free_Curve的平台,该平台提供基本绘制、设置、输入功能,学生在此基础上实现:
[1]编码实现BSpline曲线基函数
[2]编码实现不同参数条件下的节点矢量的生成
●平台界面:
如图41所示
●多边形输入,界面如图41所示:
⏹用户按【功能】【输入……】菜单开始输入控制多边形;
⏹单击鼠标左键输入多边形顶点;
⏹点击鼠标右键结束控制多边形输入
●参数设置:
界面如图42所示
⏹用户按“【功能】【设置……】”启动设置对话框
⏹设置内容:
◆控制点设置(包括颜色、是否显示、控制点大小)
◆控制多边形设置(包括控制多边形的颜色,是否显示)
◆BSpline曲线设置
⏹实现下列函数
◆实现BSpline曲线的基函数;
floatBKM(floatt,intk,intm,floatnodes[])
参数含义参考代码注解;
◆节点矢量的计算:
boolCreate_Nodes_Vector(intn,
intm,
intSplineType,
floatnodes[])
参数含义参考代码注解;
图41平台界面
图42设置界面
实验5光照模型(IlluminationModel)
5.1实验要求和目的
理解和掌握简单光照模型的基本原理和方法;并编程实现两种常用的明暗处理方法:
●Gouraud明暗处理方法
●Phong明暗处理方法
说明:
本平台目前仅考虑环境光(AmbientLight)、漫反射光(Diffuselight),暂不考虑镜面反射光(SpecularLight),而且不考虑光强衰减;
5.2思考题
●如何实现光强衰减效果
●如何实现镜面反射光效果
5.3实验课时
4学时
5.4实验环境
本试验提供自带实验平台
●开发环境:
VisualC++6.0
●实验平台:
Illumination(自制平台)
5.5实验平台介绍
本实验提供名为Illuminatin的平台,该平台提供以下功能:
[1]提供半球面的四边形网格生成功能;
[2]网格线绘制功能
[3]恒定光强的多边形绘制功能
[4]设置功能(见后面的描述)
[5]提供完整的多边形绘制框架;
[6]提供二次线性插值运算功能
在此基础上,学生编程实现:
[1]编码实现Gouraud明暗处理方法
[2]编码实现Phong明暗处理方法
●平台界面:
如图51所示
●多边形输入,界面如图51所示:
⏹用户按【功能】【输入……】菜单开始输入控制多边形;
⏹单击鼠标左键输入多边形顶点;
⏹点击鼠标右键结束控制多边形输入
●参数设置:
界面如图52所示
⏹用户按“【功能】【设置……】”启动设置对话框
⏹设置内容:
◆几何模型参数
◆网格线设置
◆环境光设置
◆漫反射设置
◆显示控制
⏹实现下列函数
◆实现Gouraud明暗处理方法;
doubleCIlluminationView:
:
Gouraud
(intPt[3],
intVertices[4][3],
doubleNormals[4][3],
intlightPos[3],
doubleIp,
doubleKd)
参数含义参考代码注解;
◆实现Phong明暗处理方法:
boolCreate_Nodes_Vector(intn,
intm,
intSplineType,
floatnodes[])
参数含义参考代码注解;
图51总体界面
图52设置对话框
附录A:
实验报告
实验X:
实验名称
姓名:
学号:
班级:
实验地点:
实验时间:
1实验目的和要求
2实验环境和工具
3实验结果
3.1程序流程图
3.2程序代码
3.3运行结果
3.4运行结果分析
4思考题(可选)
5实验心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 计算机 图形学