计算机图形学实习报告

上传人:汽*** 文档编号:432675236 上传时间:2023-07-22 格式:DOC 页数:7 大小:76.51KB
返回 下载 相关 举报
计算机图形学实习报告_第1页
第1页 / 共7页
计算机图形学实习报告_第2页
第2页 / 共7页
计算机图形学实习报告_第3页
第3页 / 共7页
计算机图形学实习报告_第4页
第4页 / 共7页
计算机图形学实习报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机图形学实习报告》由会员分享,可在线阅读,更多相关《计算机图形学实习报告(7页珍藏版)》请在金锄头文库上搜索。

1、一、实习目的与意义本次实习为集中实习,基于AutoCAD2004平台与VC环境系统,制作二维和三维立体产品。通过对AutoCAD2004与VC系统的应用实习,熟悉其的基本功能及操作特点,掌握基本的制作过程。通过本次实习,学生应能熟练使用AutoCAD软件、建立初步面向对象编程的基本概念、以及学会使用VC编程语言。二、实习主要内容1、AutoCAD软件操作(1)简单图形绘制(2)图形的基本编辑(3)文字及填充(4)三维图形绘制2、 基于VC6.0下的计算机图形学程序编写(1)画直线、画多边形、画圆、画字符(2)对多边形进行填充(3)图形裁剪(4)图形的几何变换(5)三维图形的消隐及着色三、实习的

2、主要过程 实习为期两周,第一周实习部分为CAD 软件实习,第二部分为计算机图形学基础的编程实习。第一周实习CAD画图,在实习第一天一晚上老师给我们讲了这两周实训的任务安排,讲述了本周实训的主要内容,实训目的以及意义所在,然后交代了一些细节方面的问题,强调应当注意的一些地方,以及考试成绩打分等。并建议到图书馆找谢相关的书籍学习。开始我们跟着实习指导书开始一步一步的做。前两天主要学习CAD的二维画图,主要是掌握了二维的POINT、LINE、CIRCLE、ARC、DONUT、RECTANGLE、POLYLINE、ELLIPSEPOLYGONSPLINEMLINETRACESOLIDXLINERAY的

3、功能及操作。 学会设置幅面、使用实体绘图工具条、擦除命令(ERASE)、重画命令(REDRAW)及 SOLID命令操作及编辑命令操作MOVE、COPY、MIRROR、ARRAY、BREAK、TRIM、EXTEND、ROTATE、OFFSET、FILLET、CHAMFER。 倒角、 补线、SCALESTRETCHDIVIDEMEASUREEXPLODELENGTHENMEDITPEDITSPLINEDDITUUNDO。掌握剪贴板复制图形、夹点、实体快速选择。实体绘图次序改变命令、文本注写及编辑等操作。 掌握图层设置、颜色设置、线型设置的方法、特性修改的功能、特性匹配的功能、线宽及线性比例的设置方

4、法、图案填充的方法及步骤第三四天学习。掌握建立尺寸式样的方法、尺寸标注工具条各图标的含义、尺寸标注下拉菜单的使用。尺寸标注命令的输入方法、长度型尺寸标注的方法、 水平尺寸标注、垂直尺寸标注、基线型尺寸标注、连续型尺寸标注、旋转型尺寸标注、对齐 型尺寸标注、握角度型尺寸标注方法、 掌握直径型尺寸标注方法、半径型尺寸标注方法、掌握快速尺寸标注方法、掌握坐标型尺寸标注方法。块操作,了解掌握Block、 Wblock。之后开始练习三维画图,主要掌握了坐标、视口、拉伸、切割、旋转、曲面属性、交集差集的应用,渲染等。最后一天进行考核。第二周主要实习计算机图形学的编程实习。对于编程的主要步骤为:(1)程序框

5、架建立:打开Visual C+6.0 软件,以计算机图形学的一个Project,利用MFC新建一个单文档程序,在生成的程序框架中添加必要的实现功能程序代码,根据具体情况设置相应的程序,然后在该程序里实现所有编程任务。(2)添加新的菜单项框架中必不可少的那就是菜单选项,所以根据我们的实习任务,首先要建立一个菜单项。点击VC平台左边窗口中的Resource View标签,点击打开Menu,添加完菜单项相应的菜单,接下来就是为菜单项添加菜单响应函数,以及添加必要的条件响应代码。(3)直线:DDA算法实现、中点画线算法、Bresenham直线算法在二维坐标平面上的直线可按其斜率以及起点终点横坐标的相对

6、大小分为以下六种:水平、垂直、斜率不同的四种情况。由DDA算法可得起始条件为x0、y0;递推条件为横坐标两每增加1,纵坐标量增加m;终止条件为横坐标变量大于x1。DDA直线的程序实现如下:首先编写菜单响应函数,对MenuID和PressNum两个变量赋初值;接下来建立相应的鼠标响应程序框架,DDA直线要求第一次点鼠标左键确定起始点,第二次点鼠标左键确定直线终止点,并画出直线,中间利用橡皮筋技术实时显示直线的形状,完成直线绘画后,还要将橡皮筋旧线擦除。中点画线算法实现过程和DDA算法大致相同,但是其思想更加合理,更有利于硬件实现,提高了算法效率,其程序来源于源码中,程序实现同DDA大同小异,DO

7、C.cpp中核心算法不同而已,是用交点与中点差比较得判定。Bersenham是用e比较。(4)圆的生成:Bresenham画圆法、正负圆法先为Bresenham 圆添加菜单响应函数确定MenuID,然后画圆的OnLButtonDown()响应:用鼠标确定圆心,再移动鼠标确定半径。在确定半径时,随着鼠标的移动,一个圆随着鼠标的移动半径发生变化。然后调用Bresanham 算法完成圆的绘制。Bresenham圆的编程实现如下:首先编写菜单响应函数,对MenuID和PressNum两个变量赋初值;接下来建立相应的鼠标响应程序框架,Bresenham圆要求第一次点鼠标左键确定圆心,第二次点鼠标左键确定

8、圆上一点,并由此确定半径,画出完整的圆;然后再在Doc.h头文件中声明必要变量和函数,并在Doc.cpp中完成Bresenham圆的生成函数。正负画圆法的编程实现与Bresenham圆的相类似。(5)曲线生成:Berier曲线 与 B样条曲线之前的响应与直线与圆的生成方法一样,先为Berier曲线添加菜单响应函数确定MenuID,先用左击鼠标响应OnLButtonDown(),得到控制点个数PointNum中,得到控制点后,单击鼠标右键响应调用Berier函数,用控制点和基函数逐个像素描点得到曲线。B样条曲线方法相同,不同的是DOC.cpp中的基函数。(6)图形变换平移、任意多边形平移、缩放、

9、旋转和对称变换同样添加菜单响应函数确定MenuID,对于对已知图形的平移,则先在屏幕上显示一个图形,用鼠标左键先后点两点,用这两点的间距作为图形的平移量,对显示的图形进行平移。显示图形的数据存放在文档类数组group 中,图形的数据量存放在文档类变量PointNum 中。在文档类中增加两个函数:DrawGraph( )和GenerateGraph( )完成这些工作,其中,DrawGraph( )根据存储在group 数组中的数据生成图形,GenerateGraph( )先准备数据,然后调用DrawGraph( )生成图形。有关操作涉及到鼠标左键函数和鼠标移动函数。左键第一点确定基点,左键第二点

10、确定平移量,并完成图形平移。在确定第二点之前的鼠标移动时,从基点拉出一根橡皮筋以显示平移量。任意多边形平移,与平移不同的区别在于参考平移是对已知的group4平移、而是另行设置的数组m_nPolygon;平移时则是先用多边形画出任意形状的多边形,然后用相同的方法计算位移量,调用 DrawGraph( )重新画图。旋转则是用之前数图实习的方法做的,MFC的响应方法类似。只是多加了个通过计算每个点旋转后的位置。同理于缩放与对称的方法。(7)图形显示边缘填充、扫描线填充、种子填充、自由种子填充边缘填充算法、扫描线填充与扫面线填充算法都是在多边形基础上,然后再画完后,早鼠标右键闭合多边形后直接改变Me

11、nuID的值进行多边形的填充,而种子填充则是先选定填充颜色然后对填充对象在区域内选定填充点,然后填充的,如果没有选色,则会溢出,为了解决这一个问题,我自己设计了一个小程序,利用一个计数程序,使得在首次使用填充命令式弹出填充颜色选择对话框,以选择填充颜色,第二次使用填充命令就不再弹出选择颜色对话框。基本操作,边缘填充算法与扫面线填充算法,都是先画一多边形对所画图像立刻进行填充,而自由填充算法,则是可以对任何闭合多边形都可以随意填充所选颜色,不局限于某个多边形。且多边形边界可以任意的。(8)二维裁剪多边形裁剪、中点裁剪、Liang-Barsky裁剪和Cohen-Sutherland裁剪所有的裁剪都

12、是在固定的窗口下完成的,已知了窗口X、Y的边界值。 首先编写菜单响应函数,对MenuID和PressNum两个变量赋初值;接下来建立相应的鼠标响应程序框架,CohenSutherland算法要求单击鼠标左键确定直线的起止点;多边形裁剪要求单击鼠标左键确定多边形的顶点,单击鼠标右键结束选点,并封闭生成多边形,并完成多边形裁剪;然后再在Doc.h头文件中声明必要变量和函数,并在Doc.cpp中完成CohenSutherland算法和多边形裁剪的生成函数。正确完成上述步骤后,对整个工程进行编译、执行,单击多边形的CohenSutherland算法和多边形裁剪的菜单项,便可生成CohenSutherl

13、and算法和多边形裁剪的图形。中点裁剪、Liang-Barsky裁剪与CohenSutherland实现方法大致一样,最后在断定直线与边界的交点改变而已。四、实习的主要体会第一周的CAD实习,虽然说时间不长,可是对于我来说收获却是很多的。首先对CAD知识较以前来说有所提高。我从书上得知,CAD可以绘制机械、建筑、航空、石油等多方面的二维平面图形和三维立体图形等等,所以说它的使用性是非常之广泛的,电脑辅助绘图相对于手工绘图有很多突出的优势在精度,准度,美观度方面它远超于手工画图。学习到是非常有用的。一想到自己如果能学会用CAD就可以画出各式各样的图形,心一下子就很兴奋。,CAD不但用处很大,我们

14、可以用它作出工程、建筑等方面的图画来,而且易学,就是把那些基本的套路把握熟悉了以后就很简单了,还有要害的一点就是对自己要画的东西一定要熟悉的,否则一些要害性的标本就画得不恰当了。 计算机绘图的目标就是要使设计的结果在生产实践是发挥作用。目前的设计结果基本上以纸基图纸的方法进入到生产中,同时,在设计单位,纸基的图纸也是图纸档案治理的主要对象。虽然计算机辅助设计的发展方向是达到设计、生产的无纸化,但除了极少数巨型的制造企业外,绝大多数普通的设计生产单位还是以纸基图作为组织设计生产的依据。因此,怎样将CAD设计产生的电子格式的图纸转换成为描绘在规定幅面上的纸基格式的图纸,是一个与生产实际结合得非常紧

15、密的问题,在某种意义上来说,这一步与图形的修改、编辑等绘图过程同等重要。 刚实习的第一天晚上,老师就告诉我实习的时间很短很紧,我们需从图书馆借相关书籍自己学习,的确在作图的过程中我遇到了不少的难题,不是所有的都要在老师及同学的帮助解决。有书后可以更快的解决,也可以在寝室自己课后学。凡事开头难,第一天的实习进度比较难,刚打开软件都不知道自己该怎么做,该做什么。大概只能跟着指导书做一到两个实习小节,当对CAD开始有了初步的了解后,自己的兴趣也随之增加,开始白天在寝室自己跟着借来的书本做,晚上在机房实习。按书本是按部就班,能学到较为系统的方法,在机房实习通过老师与同学的帮助能学到一些快捷方式及同一图

16、用不同的方法的比较。我一直认认真真去绘制每一个图,思考每一个细节,作图步骤,哪怕是一个很小的问题。对于指导书多讲得是用不同的命令,讲解粗略,也不知道具体的用途,经常出错。但指导书比较综合,每个图形都代表一种画法。学完后可以比较好的将CAD各种基础的画法与命令掌握。学习CAD的目的就是能够完成与之相关的实际绘制任务,在实际工作中能够更快更准的完成制图作业。刚开始学的时候,也遇到不少问题。如同样画一张图,有的同学画的大小适中,有的同学画的图形就很小,甚至看不见,这是因为绘图区域界限的设定操作没有做,或虽用LIMITS命令进行了设定,但忘记了用 ZOOM命令中的ALL选项对绘图区重新进行规整.绘图区域的设定是根据实际的绘图需要来进行 的.在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号