计算机图形学 实验报告
学号:20072115
姓名: 班级:计算机 2班
指导老师:何太军
2010.6.19
实验一、Windows 图形程序设计基础
1、 实验目的
1)学习理解
Win32 应用程序设计的基本知识(SDK 编程);
2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构;
5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对
话框);
6)学习使用MFC 的图形编程。
2、 实验内容
1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务)
2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示\
is my first SDI Application\。(必选任务)
3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填 充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\\Line\\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、 实验过程
1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This
is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制;
3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。
4、 实验结果
正确地在指定位置显示了\is my first SDI Application\字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图:
5、 实验体会
通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图
形,如:在指定的位置输出字符串以及基本图形线,圆,方形的绘制。同时,初步认识了,MFC编程,了解了一些MFC的结构,和如何进行窗口编程的知识。
实验二、基本图形生成算法(GDI/MFC)
1、实验目的
1)学习理解
Win32 应用程序设计的基本知识(SDK 编程);
2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构;
5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框);
6)学习使用MFC 的图形编程。
2、 实验内容
1) 使用
MFC AppWizard 建立一个SDI程序, 从CClientDC中
派生一个类,添加图绘制算法处理函数:DDA画线、Bresenham画线,要求能绘制任意斜率的直线段;添加中点画圆函数,要求能绘制圆心在任意位置的圆;添加边界表示区域和内点表示区域的种子填充算法。
2) 自定义定义图形数据结构Point\\Line\\Circle\\Polygon等
保存一些简单图形数据(在文档类中),验证以上基本图形
算法:画若干条线段;若干个圆,并以圆作为区域验证种子填充算法;绘制多边形并填充。
3) 学习数据序列化(串行化),实现将自定义类中的数据保存
到自定义文件中:Point等类从CObject派生(参考 VC经典教程 第7 章),重载Serialize函数。
3、实验过程
1)用MFC(exe)建立一个单文档工程;
2)在类视图中的DrawDC类中根据教材上的代码添加相应的DDA画线算法函数,Bresenham画线算法函数,中点画圆函数,边界表示区域和内点表示区域的种子填充算法函数,以供DView类中的OnDraw()函数来调用;
3)自定义circle_2,line_2,point_2类来保存基本的图形数据 4)在OnDraw()函数里调用不同的画线、画圆算法来绘制直线、圆、多边形、曲线等基本图形,调用填充算法函数,用来填充多边形和圆。
5)修改Point为point_resister类,从CObject 派生,并且重载Serialize 函数,Serialize 函数函数体根据不同的成员变量实现数据的保存。
6)在OnDraw()函数里调用直线的Serialize 函数,实现直线数据的串行化,保存数据到指定文件里
4、实验结果
通过输入教材上的代码,能成功地实现相应的算法功能。通过