![计算机图形学实验报告_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/28/0f528b78-6496-4688-84f5-ae76b89c5db7/0f528b78-6496-4688-84f5-ae76b89c5db71.gif)
![计算机图形学实验报告_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/28/0f528b78-6496-4688-84f5-ae76b89c5db7/0f528b78-6496-4688-84f5-ae76b89c5db72.gif)
![计算机图形学实验报告_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/28/0f528b78-6496-4688-84f5-ae76b89c5db7/0f528b78-6496-4688-84f5-ae76b89c5db73.gif)
![计算机图形学实验报告_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/28/0f528b78-6496-4688-84f5-ae76b89c5db7/0f528b78-6496-4688-84f5-ae76b89c5db74.gif)
![计算机图形学实验报告_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/28/0f528b78-6496-4688-84f5-ae76b89c5db7/0f528b78-6496-4688-84f5-ae76b89c5db75.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机图形学实验报告学号: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、数绘制若干图形。(可选任务)2 )使用 MFC AppWizard 建立一个 SDI 程序,窗口内显示 "Hello,Thisis my first SDI Application"。(必选任务)3)利用MFCAppWizard(exe)建立一个SDI程序,在文档视口内 绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆 弧、填 充、文字等),练习图形属性的编程 (修改线型、 线宽、颜色、 填充样式、文字样式等) 。定义图形数据结构 PointLineCircle 等 保存一些简单图形数据(在文档类中),并在视图类OnDraw中绘制。3、实验过程1) 使用MFC
3、AppWizard(exe)建立一个SDI程序,选择单文档;2) 在View类的On Draw ()函数中添加图形绘制代码,说出字 符串“ Hello,Thisis my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制;3) 在类视图中添加图形数据 poi nt_pp,pp_circle的类,保存简单图形数据,通过在 On Draw ()函数中调用,实现线、圆的绘 制。4、实验结果正确地在指定位置显示了 "Hello,This is my first SDIApplicatio n"字符串,成功绘制了圆,椭圆,方
4、形,多边形以及曲线 圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成 了实验。结果截图:5、实验体会通过实验一,了解了如用使用基本的 SDI编程函数绘制简单的图 形,如:在指定的位置输出字符串以及基本图形线, 圆,方形的绘制。同时,初步认识了, MFC编程,了解了一些MFC的结构,和如何进行 窗口编程的知识。实验二、基本图形生成算法 (GDI/MFC)1、实验目的1 )学习理解 Win32 应用程序设计的基本知识( SDK 编程);2 )掌握 Win32 应用程序的基本结构(消息循环与消息处理等) ;3 )学习使用VC+编写Win32 Application 的方法。4 )学习MF
5、C类库的概念与结构;5 )学习使用VC+编写Win32应用的方法(单文档、多文档、对 话框);6 )学习使用MFC的图形编程。2、实验内容1)使用 MFC AppWizard 建立一个 SDI 程序, 从 CClientDC 中 派生一个类,添加图绘制算法处理函数:DDA画线、Bresenham 画线,要求能绘制任意斜率的直线段;添加中点画圆函数, 要求能绘制圆心在任意位置的圆;添加边界表示区域和内点 表示区域的种子填充算法。2)自定义定义图形数据结构 PointLineCirclePolygon 等保存一些简单图形数据(在文档类中) ,验证以上基本图形 算法:画若干条线段;若干个圆,并以圆作
6、为区域验证种 子填充算法;绘制多边形并填充。3)学习数据序列化(串行化) ,实现将自定义类中的数据保存 到自定义文件中: Point 等类从 CObject 派生(参考 VC 经典教程 第 7 章),重载 Serialize 函数。3、实验过程1)用MFC(exe建立一个单文档工程;2)在类视图中的DrawDC类中根据教材上的代码添加相应的DDA画线算法函数, Bresenham 画线算法函数,中点画圆函数,边 界表示区域和内点表示区域的种子填充算法函数,以供 DView 类中的On Draw ()函数来调用;3)自定义 circle_2,line_2,point_2类来保存基本的图形数据4)
7、在On Draw ()函数里调用不同的画线、画圆算法来绘制直线、 圆、多边形、曲线等基本图形,调用填充算法函数,用来填充 多边形和圆。5)修改 Point 为 point_resister 类,从 CObject 派生,并且重载Serialize 函数,Serialize函数函数体根据不同的成员变量实现数据的保存。6) 在OnDraw()函数里调用直线的Serialize 函数,实现直线数 据的串行化,保存数据到指定文件里4、实验结果 通过输入教材上的代码,能成功地实现相应的算法功能。通过在OnDraw()中调用不同的函数,实现了相应的线,圆,多边形的绘制,并成功地实现图形的填充。结果截图:5
8、、实验体会通过实验二,更透彻的理解了课本上的 DDA画线算法和Bresenham 画线算法,中点画圆函数,边界表示区域和内点表示区域的种子填充 等算法学习了如何自定义类来存贮简单的图形数据,类的派生和函数的重载,数据的串行化及保存数据到指定的文件, 初步认识了 MFC中 的文档类,学习了一些相关的内容。进一步的了解的MFC勺结构与编 程方法。实验二、Ope nGL图形程序设计基础1实验目的1)了解OpenGL图形库的功能和结构;2 )学习使用 Visual C+ 开发基于控制台的图形程序;3 )学习使用 Visual C+ 开发基于单文档( GUI 界面)的图形 程序。4 )学习使用OpenG
9、L生成基本图形;5 )学习使用OpenGL实现图形变换;2实验内容1)使用 Visual C+建 立一个 Win32 Con sole Applicatio n (控制 台应用程序),定义若干点坐标,绘制点、线段、不闭合折线、闭合 折线、多边形、三角形、四边形、三角扇、三角条带、四边形条带。 尝试不同尺寸的点、不同线宽的线、设置颜色等操作。2 )使用 MFCAppWizard 建立一个 SDI 程序,根据参考资料 2 和 3中的步骤设置OpenGL图形绘制环境。增加绘制 4种基本图形(选 择其中之一)。3实验过程:1)建立一个控制台应用程序,在 RenderScene ()函数中调用不 同的系
10、统函数分别绘制不同属性的点、线、折线、多边形、扇形等;2)建立一个SDI程序,按照所给资料设置OpenGL图形绘制环境, 并照敲老师所给实列,观看结果,查看关键代码区;3)仿照所给列子,改写代码,绘制彩色的正方体;4 .实验结果基本图形显示正确基本图形截图:fl4lRKt*E£iF(-1. 7,,-1.75:UVEFtrtEF-1.5 P-V.V31 ,1 End ):;/=.rd aui -i jx rmi 三棱柱截图:5. 实验体会在实验过程中,在工程的设置里面一定要把相关的库文件导入, 设置正方体坐标时, 要根据画布的坐标来,设置好图形的坐标比较 重要,这将影响这图形显示的效果
11、。通过这个实验,掌握了许多新图 形的画法,同时,通过仿照所给列子,改写代码,绘制彩色的正方体, 我也初步认识了绘制立体图形的一些内容, 希望在今后的试验中可以了解更多实验四、 二维图形变换程序设计1实验目的:1)掌握图形变换实现原理,基本几何变换,复合变换等;2)学习使用 Visual C+ 开发菜单,对话框等交互界面的设计;3)学习使用MFC单文档程序,实现二维图形的基本几何变换。2实验内容:使用 Visual C+ 建立一个单文档程序,采用实验二中定义的基本 图形类。在程序中增加图形变换菜单(各基本变换对应菜单项) ,各 图形变换的参数通过对话框提供 (设计提供变换参数的对话框, 如平 移
12、,旋转,比例等),实现二维图形的变换。 (提示:在各个图形类中 增加相应的成员函数实现平移; 菜单选择变换弹出对应变换的参数对 话框,对话框中提供参数后取出参数传递给图形对象, 通过调用图形 变换成员函数实现图形对象的变换) 。要求实现直线段、圆、多边形 等基本图形的几何变换。3实验过程:(1). 根据实验要求,新建菜单,增加二维图形变换子菜单,然后在菜单上添加平移,比例,对称,旋转以及错切选项。(2) .对菜单中的每一项方法构造响应函数, 并给几个需要弹出对话框 的选项添加对话框响应函数。(3) .在弹出的对话框输入参数,获取输入的参数,调用相应的变换函 数,实现图形的变换。4 .实验结果:
13、结果正确。平移 xy(100, 0)5.实验体会:在这次实验中,涉及到了,菜单和对话框的操作,在VC+6.0中,是非常方便的,VC+6.0都提供了向导型的操作过程和可视化的控件 添加,这样节省了代码编写量。通过实验四,进一步加深了对MFC编程的认识,也学习了如何对二维图形进行各种变换操作实验五、三维图形变换程序设计1实验目的:1)掌握三维图形变换实现原理,基本几何变换,复合变换,投 影变换等;2)学习使用 Visual C+ 开发菜单,对话框等交互界面的设计;3)学习使用OpenGL实现图形模型变换,视图变换,投影变换。4)学习使用OpenGL生成基本图形;2实验内容:1)使用MFCAppWi
14、zard建立一个SDI程序,根据参考资料2和3 中的步骤设置OpenGL图形绘制环境。增加绘制如下图形(选择其中 任意两个),注意模型坐标系的选择和顶点坐标的计算。 (可直接使用 实验三的设计)。2)在程序中增加图形变换菜单(各个基本变换对应菜单项) ,各图 形变换的参数通过对话框提供 (设计提供变换参数的对话框, 如平移, 旋转,比例等),实现三维图形的基本几何变换(提示:菜单选择变 换弹出对应变换的参数对话框,对话框中提供参数) 。尝试改变投影 参数与观察参数,实现图形的投影变换。3实验过程:(1). 根据实验要求,首先建立变换菜单,在菜单上提供平移,比例,旋转等变换方法。(2) .对菜单
15、中的每一项方法构造响应函数,弹出对话框(3) .通过弹出的对话框进行参数输入, 并获取输入的参数,调用相应 的变换函数,实现图形的变换。4 .实验结果:如压缩文件中Debug文件夹的EXE程序所示:按下平移,输入X,Y,Z轴的平移参数,得出新绘制的图形;按下比例,输入比例系数,得到新绘制的图形;按下旋转,首先输入想要绕某点旋转的,该点的坐标,再输入所 要旋转的角度,得出新绘制的图形;原始图形:平移过后:比例放大过后:旋转后:5.实验体会:通过实验五,可以熟练的使用菜单完成各种相应的操作,同时, 在上个实验,学习二维图形变换的基础上,学习了如何对三维图形进 行变换操作,进一步完善了对于图形变换的
16、学习。实验六、Ope nGL真实感图形程序设计1. 实验目的:1)掌握真实感图形生成的基本原理,如消隐,光照,材质等知识;2)学习使用OpenGL,GLU等生成基本图形,如球体,正方体,茶壶等;3) 学习使用OpenGL生成各种光源:点光源,平行光,聚光灯等;4) 学习使用 OpenGL 设置绘制对象的颜色,材质;5) 进一步熟悉OpenGL图形变换技术:几何变换,视图变换,观 察变换等:(1) . 对 模 型 实 现 各 种 几 何 变 换 , 包 括 对glTranslate,glRotate,glScanglLoadMatrix,glMultMatrix,等 使用;(2) . 视口变换,
17、测试不同大小的视口 glViewport;(3) . 投影变换, 要对平行投影与透视投影分别测试, 使用不同 的观察体参数,观察效果;2实验内容:使用MFC AppWizard建立一个SDI程序,根据参考资料2和3中 的步骤设置 Opengl 图形绘制环境。增加绘制如下图形,球体或茶壶 等(使用 glut 函数)。环境中创建点光源,平行光,聚光灯。设置所 绘制对象的材质,呈现出塑料,金属等材质特性,对官员的位置,方 向,类别进行控制,改变材质参数,观察效果。3实验过程:1).根据以前设置好的OpenGl图形绘制参数,在实验3的绘制正方 体的基础上修改程序,绘制 1 个全红的正方体;2) . 建
18、立一个设置光源的函数,进行光源的各种参数的设置;3) .设置好各个光源参数后,调用函数开启光源,此时的正方体轮郭清晰,显得很真实;4 .实验结果:绘制了 1个全红的正方体,设置的光源,并且向光部分亮,背光部分相对而言显得黯淡。5.实验体会:实验六通过使用openGL的相关函数,绘制出立体图形。并设置 三维图形的材质、光源,调整一定的系数使图形更真的显示。此 次学到了,如何使用openGL绘制一个比较真实的三维物体, 进一 步了解的图形学中三维图形的处理方式,结合课堂中内容,对三 维图形有了更深入的理解。实验七、二维交互式图形程序设计1、实验目的:1)综合使用VC+编写Win32应用的方法(单文
19、档、多文档、对话框);2 )掌握交互式绘图程序设计及 MFC相关类的使用;3)掌握使用MFC的编写简单动画程序。2、实验任务:1 )使用 MFCAppWizard 建立一个 SDI 程序。综合前几次二维绘 图实验的结果,实现基本功能: 建立绘制点、直线段、圆、椭圆、圆弧、多段线(折线) 、多边 形、贝塞尔( Bezier )曲线的相关类(对于封闭图形,应能多种方 式填充)、 字符串。使用实验二中自定义的 CClientDC 的派生类, 实现交互式(鼠标)绘制以上图形。实现颜色、线型、字体等的交互 式选择,实现除曲 线、圆弧外其他图形的鼠标拾取 (框选、点选)。实现新建文件、保存文件,打开文件(打开保存的自定义图形文 件, 并绘制图形)。软件界面设计 (工具栏、菜单、光标等) 。可选扩展功能:(1)实现平移、旋转、缩放、对称、错切等图形几何变换(2)图形的显示控制包括缩放(按比例、选取框) 、平移(上、小、 左、右)。(3)实现图层功能(可见性、颜色、锁定等) 、图块功能(及选中多个图形形成一组,图块的生成、引用、编辑) 。( 4 )图形的显示控制包括实时缩放、实时平移和定点平移等。 (5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业物料策划供应合同协议
- 2025年律师事务所服务协议标准文本
- 2025年通信电源项目申请报告模板
- 2025年穿水冷却装置项目提案报告
- 2025年住宅销售经纪服务协议
- 2025年市场准入合规策划合作框架协议
- 2025年企业签订网络安全协议
- 2025年企业股东间保密协议策划样本
- 2025年实习生供求策划协议书模板
- 2025年丹阳市美容院股东权益策划与分配合同书
- 海淀高科技高成长20强暨明日之星年度报告
- 不停电作业标准流程及表格
- (建筑电气工程)电气系统调试方案
- 2022年煤矿事故应急救援演练方案
- 新人教版八年级下册初中物理全册课前预习单
- 第三章-隋唐佛教宗派的兴盛与思想发展课件
- 中国典章制度ppt课件
- 高考古代诗歌鉴赏复习教案
- 负数的认识1202
- 地铁建设工程安全文明施工标准化指南(通用篇)
- 新视野大学英语第三版Book 2 Unit 1 Text A
评论
0/150
提交评论