计算机图形学实验报告二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州轻工业学院计算机图形学实验报告二
实验名称:基本图形(圆)生成技术
班级:计科07-2班
学号:
姓名:
日期: 2010-11-1
一、实验目的:
在一个图形系统中,基本图形(也称为图元、图素等)的生成技术是最基本的,任何复杂的图形都是由基本图形组成的,基本图形生成的质量直接影响该图形系统绘图的质量。

所以,需要设计出精确的基本图形生成算法,以确保图形系统绘图的精确性。

本次实验的目的就是验证直线生成的三种扫描算法,并要求对基本算法进行扩充和改进,包括:利用Visual C++实现三种直线生成算法,验证算法的正确性;
二、实验任务:
1.理解三种直线生成算法思想,写出实现程序;、
2.添加鼠标功能,实现交互式画直线程序;
3.将10个像素作为步距单位,编出Bresenham算法的示例。

三、实验内容:
任务一:实现DDA画线程序
实验步骤:
1.建立一个DDALine的工程文件;
2.添加ddaline()成员函数
方法:在工作区中选择CLASSVIEW类窗口,右击CDDAlineView类,选择“add member function…”,定义如下的成员函数:
void ddaline(CDC* pDC,int x0,int y0,int x1,int y1,COLORREF color);
3. 编译、调试和运行程序,查看程序结果。

任务二:放大10倍后,算法演示程序
先画出(100,100)到(600,400)大小为10的网格,然后从(100,100)以10为单位,计算出直线上各个像素位置。

步骤:
1.建立DDA2Line工程;
2.在OnDraw()函数中画出网格,并调用DDA2Line()函数
3.添加DDA2Line()成员函数
方法:在工作区中选择CLASSVIEW类窗口,右击CDDAlineView类,选择“add member function…”,定义如下的成员函数:
void DDA2Line(CDC* pDC,int x0,int y0,int x1,int y1,COLORREF color);
4.编写DDA2Line()函数
5.调试、运行程序。

任务三:加入鼠标功能,实现交互式画直线
第一步:建立DDAMouseLine工程文件;
第二步:向视图类中添加自定义的成员变量
用鼠标右键单击视图类,选择“Add Member Variable…”,添加下面三个成员变量。

第四步:在视图类CPP文件的构造函数中初始化成员变量。

视图类的构造函数名与该视图类的名字相同。

在视图类中选择构造函数。

第五步:在视图类的OnDraw()函数中加入下列代码,实现视图绘图。

第六步:向视图类中添加鼠标OnLButtonDown()函数消息响应函数,并输入鼠标处理程序代码。

第七步:添加成员函数的程序代码。

四、实验结果和分析:
1.查看实验结果,验证算法的正确性;
2.对程序进行分析和比较,你还能提出哪些改进和扩充?例如:
(1)线刷子绘制直线和圆;
(2)方形刷子绘制直线和圆;
(3)虚线和点划线的绘制;
五、实验感受:
通过这次实验我学到了很多的东西,基本掌握了基本图形的的绘制方法。

期间也遇到了或多或少的问题,可是经过老师的指导和自己的细心排查问题,终于还是都解决了。

经过这次实验我觉得自己很受益匪浅,不仅加深了课程记忆,更让我对计算机图形学这门课程充满兴趣,我相信,只要自己足够用心,我是肯定会越学越好的。

相关文档
最新文档