




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
131vc小型绘图系统样本(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求) 本系统开发工具:VC 本设计包含内容:源代码+毕业论文+开题报告+答辩稿论文大概: 摘要 本文较深入的研究了WINDOWS下绘图,算法,图形的保存方法,DXF文件的转换。利用visualc+6.0开发工具实现了绘制直线,圆弧,圆,矩形,图形的自定义文件格式保存,DXF格式的保存,AutoCAD 图形保存DXF文件格式的在小型图形系统中的显示。关键词: 小型绘图系统;绘图;算法,保存;转换;vc+ Abstract前 言“图”是物体透射光或反射光的分布,“形”是人的视觉系统对图的接收在大脑中形成的印象或认识。图形是两者的结合。人类获取外界信息是靠听觉、视觉、触觉、嗅觉、味觉等,但绝大部分(约200%左右)来自视觉所接收的图形信息。众所周知,计算机已成为快速、经济的生成图片的强大工具。实际上已经没有哪个领域不能从使用图形显示中获益,因此也就不会奇怪为什么计算机图形学的应用是那么的广泛,同时计算机绘图技术发展越来越快,应用范围越来越广,计算机图形学在艺术领域中的应用成效也越来越显著,除了广泛用于艺术品的制作,还成功的用来制作广告、动画片,甚至电视电影。 VC+代表了基于Windows的C+语言产品,它完美地集成了传统的编程工具,如编译器、编辑器、调试器和原代码剖析器。同时,它也集成了Windows中特殊的工具箱,如MFC(Microsoft Foundation Classes)和Windows资源编辑器(App Studio)。另外还加入了几种新工具,如轮廓应用程序生成器(App Wizard)、C+类管理器(Class Wizard)和类浏览器(Class Browser),以及各种各样为开发Microsoft Windows下的C/C+程序而设计的工具。这些工具给我们的编程带来了极大的方便。MFC类库为我们提供了丰富的类资源,特别是MFC类库中提供的绘图类中提供了几乎所有的绘图函数,功能非常全,为我们进行图形设计提供了丰富的资源,用VC+语言进行绘图程序设计具有明显的优越性,一般图形都有层次结构,任何复杂的图形均可用简单图素描述。而VC+语言具有指针、结构等丰富的数据类型,同时它的面向对象程序设计方法使图素模块(或绘图模块)之间的关系更加清晰,便于对图形进行修改、删除、插入等操作。图映射到正方体、杯、瓶等器皿的表面,形成美丽奥妙的图案。随着CAD与CAM技术的不断发展,DXF文件作为一种通用格式在CAD与CAM之间传递应用,但由于不同软件之间的结构或处理方式的差异,使得DXF文件在读取中经常会出现一些不方便之处。小型图形系统的目的是为了能够让DXF文件和自定义文件之间相互转换,以方便用户使用不同的软件打开DXF文件,同时也可以将自定义的文件类型转换为DXF类型,用CAD打开,方便使用。第一章 计算机图形学的发展 计算机图形学是随着计算机及其外围设备而产生和发展起来的。它是近代计算机科学与雷达、电视及图形处理技术的发展汇合而产生的硕果。在造船、航空航天、汽车、电子、机械、土建工程、地理信息、轻纺化工等领域中的广泛应用,推动了这门学科的不断发展,而不断解决应用中提出的各类新课题,又进一步充实和丰富了这门学科的内容。计算机出现不久,为了在绘图仪和阴极射线管(CRT)屏幕上输出图形,计算机图形学随之诞生了。现在它已发展成对物体的模型和图形进行生成、存取和管理的新学科。一 计算机图形学软件的发展随着计算机系统、图形学硬件、图形输入输出设备的发展,计算机图形软件及其生成、控制图形的算法也有了很大的发展。概括起来有以下三种:(一)用现有的某种计算机语言写成的子程序包。 用户使用时按照相应的计算机语言的规定调用所需要的子程序生成各种图形。如GKS,PHIGS,GL等,这种类型的图形软件基本上是一些计算机语言写成的子程序集。在这类程序包的基础上开发的图形程序有便于移植和推广的优点,但执行速度相对较慢,效率低。(二)扩充某一种计算机语言,使其具有图形生成的处理功能。 目前具有图形生成和处理的计算机语言很多,如: AutoLisp,Turbo C等,对解释型语言,这类功能的扩充还方便些。对编译型的语言,扩充图形功能的工作量较大,且不具备可移植性,这类语言写的图形软件比较简练、紧凑、执行速度也较快。(三)专用的图形系统。 对与某一种类型的设备,可以配置专用的图形生成语言。如果要求简单,可以采用在多功能子程序包的基础上加上命令语言的方式。如果需要配置一个具有综合功能的较为复杂的图形生成语言,又要求有较快的执行速度,则应开发或配置一个完整的编译系统。比起简单的命令语言,它具有更强的功能;比起子程序包,它的执行速度更快、效率更高。但系统开发工作量大,且移植性较差。二 计算机图形学算法的发展计算机图形学所涉及的算法是非常丰富复杂的,围绕着生成、表示物体的图形的准确性、真实性和实时性,其算法大致可以分为以下几类:(一)基于图形设备的基本图形元素的生成算法,如用光栅图形显示器生成直线、圆弧、二次曲线、封闭边界内的填色,填图案、反走样等。(二)基本图形元素的几何变换、投影变换、窗口剪裁等。(三)图形元素(点、线、环、面、体)的求交与分类以及集合运算。(四)自由曲线和曲面的插值、拟合、拼接、分解、过渡、整体与局部修改等。(五)隐藏线、面消除以及具有光照颜色效果的真实图形显示。(六)不同的字体的点阵表示,矢量中、西文字符的生成及变换。(七)山、水、花草、烟云等模糊景物的生成。(八)三维或高维数据场的可视化,实时显示和图形的并行处理。(九)虚拟现实环境的生成及其控制算法等。多年来,这些算法得到了很大的讨论和探索,其中某些算法已日益趋于完善和成熟。但很多算法还没有得到真正解决。本系统主要是演示上述提到的一些算法。三 计算机图形学的应用由于计算机图形设备的不断更新和图形软件功能的不断扩充,也由于计算机硬件功能的不断增强和系统软件的不断完善,计算机图形学在近20年内得到了广泛应用。目前,主要的应用领域有:(一)图形用户界面。图形用户界面是人们使用计算机的第一观感。如今在用户接口中广泛使用了图形和图标,大大提高了用户的直观性和友好性,也提高了相应软件的执行速度。(二)计算机辅助设计与制造( CAD/CAM )。这是一个最广泛、最活跃的应用领域。计算机图形学主要用于设计过程,尤其在工程和建筑系统,现在几乎所有的产品都是计算机设计的。简称 CAD 的计算机辅助设计方法现在也广泛的应用于建筑、汽车、飞机、轮船、宇宙飞船、计算机、纺织品和许许多多其他产品的设计中。(三)图示图形学。这是计算机图形学的另一个应用领域。用来生成报告插图,或是用于投影设备的 35mm幻灯片和透明胶片。图示图形常用于研究报告、管理报告、消费信息公报和其他类型的报告总结,财政、统计、数学和经济据。典型的图示图形有条形图、折线图、曲面图、饼图以及其他给出多个参数之间的显示图。(四)计算机艺术。计算机图形学在艺术领域中的应用成效越来越显著,除了广泛用于艺术品的制作,还成功的用来制作广告、动画片,甚至电视电影,有的电影还获得奥斯卡奖。(五)教学与培训。计算机图形学生成的物理模型、财政模型和经济模型常用作教学的辅助工具。物理系统的模型、哲学系统、人口趋势模型等可以帮助学员理解系统操作。它可以使教学过程形象、直观、生动,极大地提高了学生的学习兴趣和教学效果。如今,计算机辅助教学已深入到家庭和幼儿教育。(六)可视化。为科学计算、工程和医药的数据集或过程生成图形表示通常称为科学计算可视化( Scientific Visualization ),传统的科学计算的结果是数据流,这种数据流不容易理解也不易于检查其中的对错。科学计算的可视化通过对空间数据场构造中间几何图素或用体绘制技术在屏幕上产生二维图象。(七)图象处理。尽管计算机图形学和图象处理中所使用的技术有所重叠,但两者有不同的应用。在图形学中使用计算机来生成图形。另一方面,图象处理则修改或解释现有图片。图象处理的两个应用是:改善图片质量、对视觉信息的机器感觉,如应用于机器人。 第三章 DXF文件格式DXF实现了各种绘图软件之间转换。(一).DXF文件结构 DXF文件有两种格式:ASC码文本格式和二进制格式。前者可以用记事本打开,简单易读,后者存储效率高。DXF文件最小组成单位是组(GROUP),一个DXF文件由多个组组成。每个组在DXF文件中占两行。第一行是组码(GROUP CODE),它是一个整数;第二行是组值(GROUP VALUE),它的数据类型取决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。一个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。每个节均由一个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表示该节结束。所有节都结束后,在DXF文件的最后是组值为字符串EOF(END OF FILE)的0组作为文件的结束标志。一个完整的DXF文件由标题段、表段、块段、实体段和文件结束段5部分组成,其内容如下。 标题段(HEADER)标题段记录AutoCAD系统的所有标题变量的当前值或当前状态。标题变量记录了AutoCAD系统的当前工作环境,如SNAP捕捉当前状态、栅格间距式样、当前图层层名及线型、颜色等。 表段(TABLES)表段共包含4个表,每个表又包含可变数目的表项。这些表在文件中出现的顺序是线型表(LTYPE)、图层表(LAYER)、字样表(STYLE)、视图表(VIEW)。 块段(BLOCK)块段记录了所用块的块名,当前图层层名、块的种类、块的插入基点及组成该块的所有成员。块的种类分为图形块、带有属性的块和无名块三种。无名块包括用HATCH命令生成的剖面线和用DIM命令所完成的尺寸标准。 实体段(ENTITIES)实体段记录了每个实体的名称、所在图层及其名字、线型、颜色等。 文件结束段(EOF OF FILE)DXF文件的结束标志。 一个DXF文件由若干个组构成,每个组占两行,第一行为组的代码,第二行为组值。组代码相当于数据类型的代码,它由CAD图形系统所规定,而组值为具体的数值,二者结合起来表示一个数据的含义和值。例如,代码10代表一个点的X坐标,占一行,而其第二行4.5425则是点X坐标的具体数值,二者结合表示一点,其X坐标值为4.5425。 (1)组代码和组值的类型组代码为一个非负的不超过三位的整数,而组值由组代码的类型决定。例如: 代码09组值类型为字符型。 代码1059组值类型为实型。 代码6079组值类型为整型。 代码999表示解释行。 (2)组代码的含义每个组代码均有规定的含义,有些代码含义是固定的,而有些组代码则因应用场合不同而有多个含义,应具体分析。另外,一些代码是备用的,目前版本尚未用到,现将他们的含义举例介绍如下。 0:表示一个事物的开始,如一个块、表、图层、实体等。 1:字符型数据的值,如TEXT的字符串、文件名、属性值等。 2:一个事物的名字,如段、表、块、线型、视图等的名字。 35:字符型数据的值,如文件名、线型说明等。 6:线型名(固定类型)。 8:图层名(固定类型)。 关于实体的坐标与相应的组代码1018、2028、3038的用法应根据实体所用到点的数量,按组代码个位的0、1、2、的顺序使用。例如LINE的起点组代码为10、20、30,而11、21、31为其终点。其他类似。 DXF文件的结构相当复杂,完整读取DXF文件也是一项异常繁琐的工程。在实际应用中,为了提取图形的实体信息,可以省略DXF文件中的许多项,只要获取其中的层表、块段和实体段,就可以完成相应几何图形的描述。在层表中说明每一层的颜色、线型,在块段中说明块所在的层、属性及其在图形中的位置,在实体段中说明直线的起点、终点及圆的圆心、半径等几何信息和各实体所在的层。根据实体所在的层,在层表中搜索每一层的颜色、线型并将其添加到实体对象中。在利用CAD进行绘图时,需将变量参数DIMASO设为ON,以保证块段中定义的尺寸块为一个整体,并可被正确无误地获取。根据尺寸类型名、尺寸定义的起点、终点坐标与实体类型名、实体空间坐标是否匹配,对实体对象进行尺寸附加。在绘图时,如对自定义的粗糙度、形位公差等块不进行“EXPLODE”炸开操作,也可通过增加相应读取函数提取其属性。 (二)举例说明实体段在DXF文件中的格式。 圆弧(ARC)0(开始)ARC(圆弧) 8(层的组码) W1(层名为“W1”) 10(圆弧圆心的X坐标组码) 7.0(圆弧圆心的X坐标组值) 20(圆弧圆心的Y坐标组码) 9.0(圆弧圆心的Y坐标组值) 30(圆弧圆心的Z坐标组码) 0.0(圆弧圆心的Z坐标组值) 40(圆弧的半径组码) 25.0(圆弧的半径值) 50(圆弧的起始角度组码) 90.0(圆弧的起始角度值) 51(圆弧的终止角度组码) 200.0(圆弧的终止角度组值) 若实体的线型用BYLAYER,颜色为256(即BYLAYER),基面高度和厚度为零,其格式可简化。 对于其他图形实体的格式描述(LINE、CIRCLE、TEXT等),这里就不再一一详述了。第四章绘图的算法及实现操作上采用左键点击建立图形对象起始点,移动动态调整图形大小和位置(随手画采用按住左键拖动的方式,再次点击左键确定位置,右键取消操作,双击确定(结束)。在功能设计方面基本符合一般图形软件的惯例,但出于作者的便利和保护鼠标的考虑,整个功能体现了基本无需按住左键拖动的思想。这也是很容易让人接受的,因为即便习惯拖动的用户拖动时也会产生位置调整,只是释放后还是出于拖动状态,再次点击或双击才最终确定。功能上选择了画线、矩形,圆、圆弧。(一)数据结构 1。圆的数据结构typedef struct _stCircle CPoint pt; float fRadius; stCIRCLE;2。圆弧的数据结构typedef struct _stArc CPoint pt; float fRadius; float fStartAngle; float fEndAngle; stARC;3。成员变量int m_numH; /水平方向像素数目int m_numV; /垂直方向像素数目BOOL m_isBeEditting; /文档正在编辑标志BOOL m_isAllowEdit; /文档允许编辑标志BOOL m_isEdittingNewLine;/正在画线标志BOOL m_bModified; /原文档被修改标志ZSymbol m_symbol; /图形保存对象BOOL m_bDrawCircle; /画圆BOOL m_bDrawArc; /画弧BOOL m_bDrawLine; /线段BOOL m_bDrawRectangle; /矩形CPoint m_ptOriginal; /开始点4。链表 CList m_tempLines; /所有单线段的集合CListm_ListCircle;CList m_ListArc;CList m_tempFillLines;(二)图形算法建立起始点和结束点 左键点击建立图形对象起始点,由变量m_isEdittingNewLine控制1线的算法m_pRect=new CRect(Startpoint,Endpoint) 记录线段的起始点和终点m_tempLines.AddTail(*m_pRect);加入线段链表中 2矩形的算法 始点和终点和终点之间的距离是矩形的对角线,矩形由四个线段组成m_pRect=new CRect(ptStartGrid.x,ptStartGrid.y,ptEndGrid.x,ptStartGrid.y);m_tempLines.AddTail(*m_pRect);m_pRect=new CRect(ptEndGrid.x,ptStartGrid.y,ptEndGrid.x,ptEndGrid.y);m_tempLines.AddTail(*m_pRect);m_pRect=new CRect(ptEndGrid.x,ptEndGrid.y,ptStartGrid.x,ptEndGrid.y);m_tempLines.AddTail(*m_pRect);m_pRect=new CRect(ptStartGrid.x,ptEndGrid.y,ptStartGrid.x,ptStartGrid.y);m_tempLines.AddTail(*m_pRect);3圆的算法圆心点和直径决定一个圆的位置和大小in第五章图形自定义文件格式的保存和算法图形的保存由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营业执照抵押合同7篇
- 清廉知识竞赛试题及答案
- 薪酬协议合同5篇
- 重点小学竞赛试题及答案
- 沪科版9年级下册期末试题及答案详解【历年真题】
- 语文s版六年级下册单元测试题及答案
- 2025年教师招聘之《幼儿教师招聘》考前冲刺练习题及答案详解【有一套】
- 主管岗位测试题及答案
- 心理细胞测试题及答案
- 海外安全培训课件
- 旅行社劳动合同范文3篇
- 2025年污水处理及其再生利用行业研究报告及未来行业发展趋势预测
- 证券投资学课件吴晓求
- 摩托车整车采购合同范本
- 托管班合伙人合同协议书
- 2025劳动合同补充协议
- 社区节水节电知识培训课件
- 防火墙行业知识培训课件
- 2025版全新升级二手房买卖合同模板下载
- 乡镇执法证考试题及答案
- 2025年监理工程师继续教育试卷及答案
评论
0/150
提交评论