1、计算机图形学实习报告实 习 报 告 实习名称: 计算机图形学实习 班 级: 1407 学 号: nnnnnnnnnn 姓 名: nnn实习地点: 附三-201 机房 实习指导教师: 付仲良 实习时间:2016年1月10日至 1月 23日遥感信息工程学院一、实习的目的和意义1.1 实习目的 这次计算机图形学实习是在机房201实习,我们所采用的是CAD和VC6.0的软件来进行实习,通过CAD制作二维和三维的模型,通过VC编程实现一些基础图像的生成和变化。通过对AutoCAD2004与VC系统的应用实习,熟悉其的基本功能及操作特点,掌握基本的制作过程。通过本次实习,我们逐渐熟练使用AutoCAD软件
2、及在其基础上开发的有关软件如南方cass7.0、建立初步面向对象编程的基本概念、以及学会使用VC编程语言进行图形方面的编程操作。1.2实习意义二十一世纪是多媒体的世纪,是图形和图形组成的信息在计算机与互联网广泛运用的世纪,如今,在中国的大街小巷,曾经十分高大上的3D技术和虚拟现实系统逐渐进入千家万户,作为遥感专业学生,熟练地使用图形信息,生产图形信息,并不断仿真,不断发展是必要的技能。同时计算机图形学与数字图像处理、模式识别等学科关系密切,因此计算机图形学是一项必备的技能。对于个人的今后发展,具有实际的图形软件操作能力对于我们在这一方面读研或找工作有很大的帮助,进行集中的高强度实习安排是有必要
3、的。二、实习主要内容1、AutoCAD软件操作 1.1 启动软件,新建图层1.2二维图形的绘制 1.2.1实体绘图命令 1.2.2图形编辑命令 1.2.3图层与颜色的设置 1.2.4尺寸标注操作 1.2.5块操作1.3三维图形的绘制1.3.1 三维实体与曲面的绘图命令1.3.2三维实体的编辑命令1.3.3三维实体的尺寸标注2、基于VC6.0下的计算机图形学程序编写2.1 MFC图形环境的创建和配置2.2 二维图形的生成算法2.3二维图形变换的算法2.4二维区域的填充算法2.5二维区域的裁剪算法2.6 MFC环境下的字符与颜色设置三、实习的主要过程 3.1 AutoCAD的软件操作 AutoCA
4、D软件能处理相当多的图像,广泛应用于土木建筑等。我们在绘图之前,首先要对软件进行配置。通过这些配置来实现工具栏之类的快捷运用3.1.1简单图形的生成命令 掌握基本绘图环境设置的方法及步骤,擦除命令(ERASE)、重画命令(REDRAW)的操作,缩放命令(ZOOM)的使用方法。 代码命令实例展示: Command :limits 左下角点:(0.00,0.00) 右上角点:(200,160) Command :Zoom 全部:A掌握特殊点的输入方法。掌握数据的输入方法。掌握绘图命令POINT、LINE、CIRCLE、ARC、DONUT、RECTANGLE、POLYLINE的功能及操作。 指导书实
5、例:Command: LineSpecify first point:2,3 (确定直线的第一点)Specify next point or Undo:2,5Specify next point or Undo:5,5Specify next point or Close/Undo:5,7Specify next point or Close/Undo:8,7 Specify next point or Close/Undo:8,3Specify next point or Close/Undo:C (用Close命令封闭图形)依据指导书和网上资源的画图成果:3.1.2图形编辑命令掌握选择编辑
6、目标的方法,实体选择模式的设置。熟悉编辑命令下拉菜单。熟悉编辑命令工具条。掌握编辑命令应用MOVE、COPY、MIRROR、ARRAY、BREAK、TRIM、EXTEND、ROTATE、OFFSET、FILLET、CHAMFER。掌握编辑命令应用SCALESTRETCHDIVIDEMEASUREEXPLODELENGTHENMEDITPEDITSPLINEDDITUUNDO掌握剪贴板复制图形操作。掌握实体快速选择,实体绘图次序改变命令操作与文本注写。实习指导书演示实例:使用镜像操作复制圆法生成的圆片:使用裁剪方法裁剪直线夹角法或圆弧裁剪操作产生的切角平面图: 3.1.3图层操作与颜色设置掌握图
7、层设置、颜色设置、线型设置的方法。 1.图层的设置 在实体特性工具条上,单击图层图标按钮,调出图层特性管理器对话框。单击New按钮,在对话框的中央图层列表框中,在Name中输入层名“细实线”;单击继续项,在弹出的Linetype Manager对话框中为图层设置线型;单击White项,在弹出的Select Color对话框中为图层设置颜色;单击Default项,在弹出的Line-weight Settings对话框中为图层设置线宽重复操作,建立粗实线、点划线、虚线、剖面、文字等图层。 根据需要可设置图层的不同状态。上图:图层资源管理器设置双图层后使注释与构造线的线型与颜色加以区分:2.掌握图案
8、填充的方法及步骤。(1) 调用BHATCH命令,此时在屏幕上弹出图案填充对话框。(2)图案填充设置,在图案填充对话框的Quick选项对话框中,在Type选择框内选择Predefined图案填充类型,在Pattern选择框内选择ANSI31。在图案填充对话框的Advanced选项对话框中,在图案填充方式,即岛检测类型中,选择普通填充方式。(3)选择填充边界,单击Pick Points按钮,选择图案填充区域内一点确定填充区域边界,此时屏幕出现提示:Select internal point: 用光标在要进行图案填充的封闭区域内点取一点 Select internal point: 继续用光标在要进
9、行图案填充的封闭区域内点取一点Select internal point: 结束图案填充区域选择,返回对话框形式(4)填充图案预览,单击Boundary Hatch (图案填充)对话框中左下角的Preview按钮,对话框消失,屏幕上显示在填充区域内的填充图案,此时填充图案边界以虚线形式显示。并在命令提示行显示提示:Hit enter or rightclick to return to the dialog)(按回车键或单击鼠标键可返回到对话框)完成图案填充。(5)单击Boundary Hatch (图案填充)对话框中的OK键,完成图案填充操作。结果如下图所示:3.1.4尺寸标注操作 设置尺寸
10、标注式样: (1) 调出尺寸式样管理对话框: (2) 选择新建或修改按钮设置我们自己的标注样式: 共有六个修改大类:直线、符号和箭头、文字、调整、主单位、换算单位、公差 (5)三维图形的绘制 三维图形的绘制对我们是一个很大的考验。因为三维图形绘制的时候需要我们又很强大的立体感官。我们一般是采用的是三个相等视图,即分别为俯视图,西南等轴和主视图。我们绘制的时候要选好视图和自己的视角。首先分析图形的时候我们要三维立体的对设计图里面的标注进行想象和计算。我们在拼接的时候要学会消隐、图形集合、图形上色的技巧。三维的标注也很重要,需要熟练地使用USC坐标系的各种转换设置。 立体桌子的西南等轴观测图:三维
11、台灯的绘制:3.2 基于VC6.0下的计算机图形学程序编写3.2.1新建MFC项目 打开VC+6.0或VS2010,在C+下新建一个单文档的MFC项目,完成后熟悉MFC的五个大类和资源视图,运行MFC,观看效果。3.2.2搭建适合图形编写的程序框架 依据实习指导书,通过资源视图打开文档视图,在菜单栏中新建图形选项,统一名称和ID。为便于进行图形坐标点的选择和确定,通过类向导在View类中创建鼠标的响应函数,并且设置成鼠标移动显示坐标点的模式。运行MFC,观看效果。3.2.3熟悉MFC View类与Doc类的有关函数 为了保证封装的严谨性,我们在View类中声明图形界面交互函数和临时变量,在Do
12、c类中封装图形核心数据与函数,在View类中尝试调用Doc类,并使用View类的自带函数设置画笔,画刷,和画直线,画圆,画矩形的函数。运行MFC,观看效果。3.2.4编写图形生成和编辑函数 根据实习指导书与实习要求,完成图形生成,图形变化,图形显示,二维裁剪的有关内容。图形生成板块有四大内容:直线生成法,圆生成法,曲线生成法,字符与颜色。这一部分字符和颜色设置完全调用了MFC的自带对话框设置,比较容易上手。直线生成比较简单,自己尝试完成了两种直线画法。画直线过程中使用了橡皮筋技术,使得鼠标从一个点出发生成可供预览作用的射线。MFC中的画刷设置使用异或画法对于更新图幅画面很好用,这个方法最早是在
13、计图理论课上填充多边形是检测边缘重复点学习到的。 部分成果演示情况: MFC颜色设置的对话框 MFC字符设置对话框依次为DDA直线和中点画线直线画圆方法相较于直线略难,但也能够根据课本理论独立完成,其基本思路都是一致的尽可能把图形函数的非参数方程转化成适应计算机运算的像素坐标加减一运算。画圆成果展示(从左至右依次为 BresenHam圆和正负画法圆):曲线画法难度较高,递归式画法理解和实现都不容易,Bezier曲线提供的算法存在问题,不满足端点性质,经过检查,发现Bezier函数的循环方法限制了最后一个点读不进去,因此自己进行了修改,使四个点曲线可以完全拟合。在基础上又自己更改调和函数的插值方
14、程,写了Hermite曲线,B样条曲线由于是在Bezier曲线基础上完善的调和函数控制点的选择,因此难度更大,根据个人理解和同学讨论完成这一任务,但实际情况不理想。 曲线画法程序结果 图形变换容易上手,由于指导书提供了固定图形模板,因此角点的确定比较容易,直接可以进行矩阵运算完成对应的变换操作。总共完成了移动、对称变换、缩放、旋转四个任务。移动和对称利用的是画直线进行参数的跟踪,缩放采用鼠标滚轮控制(调用OnMouseWheel函数,非常有帮助),旋转自己采用了对话框输入参数法锻炼自己的对话框使用能力。 部分成果展示(缩放是鼠标滚轮进行控制的,不作展示): 移动操作 对称操作 旋转操作 旋转操
15、作使用的自定义对话框图形显示主要是三种不同的填充方法,感觉扫描线算法比较稳定,种子填充方法看起来填充性更加美观但容易出现BUG,边缘填充法相对平均一点。填充算法的要点很多,基本无法独立完成,看了比较长时间。在填充期间,经常出现填充直线填充溢出或填充中断的现象,主要是边界的确定在实际编程中不是连续而是离散的像素点造成的。 部分成果展示(填充算法区别在于过程,因此只展示一部分): 二维裁剪在数学上理解比较容易,编程上任务量却很大,编码函数还涉及到一定的计算机原理知识,要求完成五个裁剪方法,每个裁剪方法都不容易,按照实习指导书完成了三个任务,两个自己完成的任务也尝试完成了,由于课本上有过讲解,因此按
16、照课本和自己思路基本完成了要求,编程发现如果直接使用直线解析式进行边界处理,当斜率过大过小时,直线往往不是连续的,需要许多机制保证裁剪的准确性。 部分成果展示: 多边形裁剪 圆裁剪 直线裁剪 相关的具体代码和程序运行结果详见我的MFC程序的上机展示部分。这里不再过多进行累述。四、实习的主要体会4.1AutoCad的学习使用AutoCad的学习对我们非常有帮助,第一,我们第一次规范地学习了图形软件的使用,知道规范化作业中图形的生成方法,标注的格式;第二,软件的使用让我们对于计算机图形学有及其深刻的印象,像坐标系、几何消隐这种很难理解的理论知识,经过软件使用的实例化,迅速有了深刻的认识。第三,该软
17、件及其衍生产品是目前市场上最为广泛认可和使用的图形产品,而新一代的CAD的功能也越来越强大,特别是3D技术与虚拟现实发展非常迅猛的今天,学会CAD的基础操作,是以后进一步进阶,利用更强大功能获得技术含量更高的图形产品,是非常重要的基础。在实习期间,我熟练地掌握了直线,圆,多边形,标注,图层的使用方法,对于三维空间形体的绘制也基本过关,但在坐标系的转换这部分还不是很熟练,需要进一步巩固加强。感谢孙朝辉,张丰,刘敏三位老师一周学习过程中耐心而深刻的指导,让我打下坚实的实习基础。4.2基于MFC的计算机图形程序编写可以说,在计算机中,越接近程序语言的本质,困难程度越大,但越能让人理解图形学的本质。由
18、于大一我们C+学习效果很差,因此,用MFC编程一直是我们的极大的难点。这次实习非常好地让我们复习了MFC,实习过程中,我们进行了大量的Doc类和View类的参数传递,对话框的设计与封装,Windows系统响应函数的使用,对于面向对象的程序设计和交互系统有很好的理解与掌握。在20周的实习过程中,我们完成了计算机图形学二维部分的主要知识要点的编程实现,简单的比如直线与画圆,字符与几何变换,难得也有曲线生成,区域填充和裁剪算法,实习内容与上一周的AutoCad的软件使用实习是一脉相承的,上一周明确计算机图形绘制的效果与高级使用方法,这一周实习深入研究计算机图形学的核心部分,从原理到实现到完成应用很连贯。通过代码的完成,我发现书本上许多简单的数学要点在进入编程环境后会变得十分麻烦,即使MFC提供了很好的编程封装环境,可能要写很长的代码来应对一些问题。计算机图形学是一门庞大的学科,其内涵随着人类科技文明的发展不断赋予新的含义。因此,我们任重道远,在这门课的学习与操作仍需要长期的练习。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1