小型绘图系统文档_第1页
小型绘图系统文档_第2页
小型绘图系统文档_第3页
小型绘图系统文档_第4页
小型绘图系统文档_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

131vc小型绘图系统样本

(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)

本系统开发工具:VC

本设计包含内容:源代码+毕业论文+开题报告+答辩稿

论文大概:

摘要

本文较深入的研究了WINDOWS下绘图,算法,图形的保存方法,DXF文件的转换。利用visualc++6.0开发工具实现了绘制直线,圆弧,圆,矩形,图形的自定义文件格式保存,DXF格式的保存,AutoCAD图形保存DXF文件格式的在小型图形系统中的显示。

关键词:

小型绘图系统;绘图;算法,保存;转换;vc++

Abstract

“图”是物体透射光或反射光的分布,“形”是人的视觉系统对图的接收在大脑中形成的印象或认识。图形是两者的结合。人类获取外界信息是靠听觉、视觉、触觉、嗅觉、味觉等,但绝大部分(约200%左右)来自视觉所接收的图形信息。众所周知,计算机已成为快速、经济的生成图片的强大工具。实际上已经没有哪个领域不能从使用图形显示中获益,因此也就不会奇怪为什么计算机图形学的应用是那么的广泛,同时计算机绘图技术发展越来越快,应用范围越来越广,计算机图形学在艺术领域中的应用成效也越来越显著,除了广泛用于艺术品的制作,还成功的用来制作广告、动画片,甚至电视电影。

VC++代表了基于Windows的C++语言产品,它完美地集成了传统的编程工具,如编译器、编辑器、调试器和原代码剖析器。同时,它也集成了Windows中特殊的工具箱,如MFC(MicrosoftFoundationClasses)和Windows资源编辑器(AppStudio)。另外还加入了几种新工具,如轮廓应用程序生成器(AppWizard)、C++类管理器(ClassWizard)和类浏览器(ClassBrowser),以及各种各样为开发MicrosoftWindows下的C/C++程序而设计的工具。这些工具给我们的编程带来了极大的方便。MFC类库为我们提供了丰富的类资源,特别是MFC类库中提供的绘图类中提供了几乎所有的绘图函数,功能非常全,为我们进行图形设计提供了丰富的资源,用VC++语言进行绘图程序设计具有明显的优越性,一般图形都有层次结构,任何复杂的图形均可用简单图素描述。而VC++语言具有指针、结构等丰富的数据类型,同时它的面向对象程序设计方法使图素模块(或绘图模块)之间的关系更加清晰,便于对图形进行修改、删除、插入等操作。图映射到正方体、杯、瓶等器皿的表面,形成美丽奥妙的图案。

随着CAD与CAM技术的不断发展,DXF文件作为一种通用格式在CAD与CAM之间传递应用,但由于不同软件之间的结构或处理方式的差异,使得DXF文件在读取中经常会出现一些不方便之处。小型图形系统的目的是为了能够让DXF文件和自定义文件之间相互转换,以方便用户使用不同的软件打开DXF文件,同时也可以将自定义的文件类型转换为DXF类型,用CAD打开,方便使用。

第一章计算机图形学的发展计算机图形学是随着计算机及其外围设备而产生和发展起来的。它是近代计算机科学与雷达、电视及图形处理技术的发展汇合而产生的硕果。在造船、航空航天、汽车、电子、机械、土建工程、地理信息、轻纺化工等领域中的广泛应用,推动了这门学科的不断发展,而不断解决应用中提出的各类新课题,又进一步充实和丰富了这门学科的内容。计算机出现不久,为了在绘图仪和阴极射线管(CRT)屏幕上输出图形,计算机图形学随之诞生了。现在它已发展成对物体的模型和图形进行生成、存取和管理的新学科。

计算机图形学软件的发展

随着计算机系统、图形学硬件、图形输入输出设备的发展,计算机图形软件及其生成、控制图形的算法也有了很大的发展。概括起来有以下三种:

(一)用现有的某种计算机语言写成的子程序包。

用户使用时按照相应的计算机语言的规定调用所需要的子程序生成各种图形。如GKS,PHIGS,GL等,这种类型的图形软件基本上是一些计算机语言写成的子程序集。在这类程序包的基础上开发的图形程序有便于移植和推广的优点,但执行速度相对较慢,效率低。

(二)扩充某一种计算机语言,使其具有图形生成的处理功能。

目前具有图形生成和处理的计算机语言很多,如:AutoLisp,TurboC等,对解释型语言,这类功能的扩充还方便些。对编译型的语言,扩充图形功能的工作量较大,且不具备可移植性,这类语言写的图形软件比较简练、紧凑、执行速度也较快。

(三)专用的图形系统。

对与某一种类型的设备,可以配置专用的图形生成语言。如果要求简单,可以采用在多功能子程序包的基础上加上命令语言的方式。如果需要配置一个具有综合功能的较为复杂的图形生成语言,又要求有较快的执行速度,则应开发或配置一个完整的编译系统。比起简单的命令语言,它具有更强的功能;比起子程序包,它的执行速度更快、效率更高。但系统开发工作量大,且移植性较差。

计算机图形学算法的发展

计算机图形学所涉及的算法是非常丰富复杂的,围绕着生成、表示物体的图形的准确性、真实性和实时性,其算法大致可以分为以下几类:

(一)基于图形设备的基本图形元素的生成算法,如用光栅图形显示器生成直线、圆弧、二次曲线、封闭边界内的填色,填图案、反走样等。

(二)基本图形元素的几何变换、投影变换、窗口剪裁等。

(三)图形元素(点、线、环、面、体)的求交与分类以及集合运算。

(四)自由曲线和曲面的插值、拟合、拼接、分解、过渡、整体与局部修改等。

(五)隐藏线、面消除以及具有光照颜色效果的真实图形显示。

(六)不同的字体的点阵表示,矢量中、西文字符的生成及变换。

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<CRect,CRect&>m_tempLines;//所有单线段的集合

CList<stCIRCLE,stCIRCLE&>m_ListCircle;

CList<stARC,stARC&>m_ListArc;

CList<CRect,CRect&>m_tempFillLines;

(二)图形算法

建立起始点和结束点

左键点击建立图形对象起始点,由变量m_isEdittingNewLine控制1.线的算法

m_pRect=newCRect(Startpoint,Endpoint)

记录线段的起始点和终点

m_tempLines.AddTail(*m_pRect);

加入线段链表中

2.矩形的算法

始点和终点和终点之间的距离是矩形的对角线,矩形由四个线段组成

m_pRect=newCRect(ptStartGrid.x,ptStartGrid.y,ptEndGrid.x,ptStartGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptEndGrid.x,ptStartGrid.y,ptEndGrid.x,ptEndGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptEndGrid.x,ptEndGrid.y,ptStartGrid.x,ptEndGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptStartGrid.x,ptEndGrid.y,ptStartGrid.x,ptStartGrid.y);

m_tempLines.AddTail(*m_pRect);

3.圆的算法

圆心点和直径决定一个圆的位置和大小

in

第五章图形自定义文件格式的保存和算法

图形的保存由继承CObject类ZSymbol来实现,算法基本思路是将所有的图形要素放入数组结构ZGRAPH中,保存时调用成员函数Serialize序列化。

(一)序列化

序列化(serialize)指的是应用程序把数据对象以文件的形式存入永久性储存体(简单说来就是硬盘)以后,还能读取出来,并在内存中还原的机制.

可序列化的对象称为永久性对象.永久性对象必须具备这样一种能力:能提供描述自身的信息.一个可串行化对象的条件为:

这个类从CObject派生

该类实现了Serialize函数

该类在定义时使用了DECLARE_SERIAL宏

在类的实现文件中使用了IMPLEMENT_SERIAL宏

这个类有一个不带参数的构造函数,或者某一个带参数的构造函数所有的参数都提供了缺省参数

Serialize()是MFC规定的对磁盘进行读写操作的函数,是由CObject类提供的一个虚函数,它的原型是virtualvoidSerialize(CArchive&ar).在文档/视图框架结构中,数据一般由文档对象来管理,所以每当进行新建、打开、保存操作时,都会自动调用文档类的Serialize().

CArchive类重载了插入<<和提取>>运算符.

例如:

需要保存一个circle,则创建一个circle类,从CObject派生,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论