1、The Vector Graphics system is one of the most important and difficult parts for GIS(Geographical Information System) development with VC+. The Vector Graphics system mainly includes implementing different drawing functions under the environment provided by VC + + 6.0, organizing and managing vector-
2、based graphic data by means of object-based methods.The idea of object-oriented is introduced in this paper, the geographic elements in the system are classified into line, arc(circle) ,curve and text. The basic classes framework is proposed by analyzing the basic structure of the vector graphics sy
3、stem. A basic vector graphics tool system is designed and realized from the kind of organization, the views realization, the mouses alternately draws up, the graphics operation, the graph selected, migration, deletion, and so on. Different drawing functions are implemented, including spot, line, cir
4、cle, surface and note text. The system has the ability of processing chart of symbols (namely graph block). The realizations of relative consummation graphics operation function and facilitates graph I/O function is given, as well as graph migration, deletion function.Key words : Object-oriented; Gr
5、aph operation; I/O;目 录论文总页数:25页1 引言 11.1 课题背景及研究的目的和意义 11.2 矢量图形系统 11.3 课题研究方法 12 总体设计思想 22.1 整体功能模块的设计 22.2 功能模块说明 23 矢量图形结构 33.1 基类的组织 33.2 视图的实现 53.2.1 实际坐标与逻辑坐标的转换 53.2.2 图形元素的绘制功能 63.3 图形操作方面 63.3.1 屏幕状态的记录 63.3.2 边界矩形 73.3.3 点选的判断和特殊显示 73.3.4 图形的移动 93.4 提高图形重画速度 94 矢量图形工具系统的设计 104.1 类的实现 104.2
6、 鼠标交互绘制 134.3 重画技术 134.3.1 图形重画 134.3.2 重画上屏、首屏和显示全图 154.4 图形移动和选中后操作 174.4.1 图形点选功能 174.4.2 图形移动 205 系统测试 21结 论 22参考文献 231 引言1.1 课题背景及研究的目的和意义GIS技术已经成为IT的重要组成部分。利用GIS技术开发的以多媒体,网络化,自动化为特色的信息处理,信息管理,指挥调度和决策支撑系统,已经在各领域发挥着重大作用。GIS将普通管理信息系统(MIS)与矢量图形系统结合在了一起,克服了普通MIS的局限性,大大提高了系统的直观性和可操作性,同时提供了普通MIS所不能解决
7、的功能,如空间信息统计,空间信息计算,网络分析等。矢量图形系统是GIS的重要组成部分,也是开发GIS时的重点所在。在不同领域应用GIS,其需要的矢量图形系统的功能是有差别的。建立一个城市信息管理GIS时,要求矢量图形系统要有丰富的图形元素,丰富的线形,巨大的存储容量,完善的输入和输出功能,强大的地图编辑功能,甚至需要三维显示和处理能力;而有些管理型GIS所需要的矢量图形系统,可能只需要具有简单地处理二维普通图形元素的功能。1.2 矢量图形系统一个基本的矢量图形系统一般需要如下的功能:1. 相对完善的图形元素,应具备处理点,线,面,网络等图形元素的能力,这类图形系统在很大程度上能够满足普通的管理
8、型GIS的矢量图形系统的要求。提高矢量显示图形的功能在很大程度上能够改善矢量图形界面的质量。2. 相对完善的图形操作功能。应具备图形的放缩,移动等各种操作功能。3. 相对完善的图形输入和输出功能。应具备鼠标交互绘制功能,图形数据交互输入等功能;4. 定制和使用线形;5. 具有子图填充功能;6. 具有图层,颜色,线形等的设置功能;7. 具有较大的存储容量。处理图形元素的容量应该能够达到一般实用要求。1.3 课题研究方法面向对象的程序设计,是目前程序设计的主流方法,在本设计中,将利用面向对象的程序设计和C+类的组织方法,组织建立一个基本矢量图形的图形元素类。组织实现的矢量图形系统,能够处理点类、线
9、类、面类、网络点等类别的图形元素,其中点类图形元素有包括直线,圆,圆弧,多边形,标注文本等图形元素,针对每类图形元素组织建立起对其进行管理的C+类,并把每个图形元素作为一个独立的对象来管理。本系统的开发要求采用VC开发平台,实现一个用于GIS的基本矢量图形系统。因此,本次毕业设计在MFC AppWizard 产生的应用程序Draw的基础上,具体组织一个基本矢量图形系统的开发。该过程涉及与矢量图形系统设计有关的类及其主要操作。从矢量图形系统的类组织,文档管理,视图组织,图形交互绘制,图形操作,图形选中,图形旋转,图形移动,图形删除等各个方面。2 总体设计思想2.1 整体功能模块的设计矢量图形工具
10、需要实现的基本功能包括文件的打开保存、图形的编辑、基本图形元素的绘制、图形的选择和重画,本课题设计的矢量图形工具系统的功能图如图1。图1 系统功能图2.2 功能模块说明 文件菜单菜单下拉选项有新建、打开、保存三个基本功能,可以新建新的客户区、打开已经存在的文件、保存希望保留的图形。 编辑菜单下拉菜单里面的撤消选项可以撤消上一步的操作,同时选中图形后可以进行复制和粘贴的操作。 鼠标绘制利用鼠标交互的功能把直线、圆、填充圆、圆弧、连续直线、多边形区域和标注文本的操作直观化,只要选中你想要的操作就可以在窗口进行相应的绘制。 选中操作基本的矢量图形系统应该具有鼠标点选图形的功能,选中图形后可以进行简单
11、的拖动、删除等基本功能。同样的,可以选中也就可以放弃选中。被选中的图形,会以特殊的方式显示出来。 图形操作图形绘制过程中用来解决重画、放大、摆动、显示全屏的操作,这在图形工具的系统中是很重要的。3 矢量图形结构3.1 基类的组织对各类图形元素进行分析,可以发现各类图形元素具有一些相同的属性和操作功能,如图形元素的颜色、线型线宽所在层等属性和得到一个图形元素是否做了删除标志等操作。把这些图形元素中共性的东西(属性和操作),组织存放在一个图形元素基类(CDraw)中,具体的图形元素由这个基类来派生。如图2。图2 基类的继承class CDraw:public CObject /图形元素基类CDra
12、w,由CObject类派生protected: short m_ColorPen; /笔色 short m_ColorBrush; /填充颜色 float m_LineWide; /线宽 short m_LineType; /线型 float m_xScale; /线型横向参数 short m_Layer; /所处图层 int m_id_only; /图形元素唯一标识号 BOOL b_Delete; /是否处于删除状态public: CDraw(); CDraw (short ColorPen,short ColorBrush,float LineWide,short LineType,flo
13、at xScale,short Layer,int id_only,BOOL Delete) virtual CDraw();1) 点类图形元素组织点类图形元素,其基本特性是各个图形相互独立,且每个图形元素具有有限个固定的特征点。直线的基类是CDraw,在直线类的构造函数中,共有包括11个参数,并利用前7个参数调用基类CDraw的构造函数,对基类的成员变量进行初始化,而在本身的构造函数中对直线类CLine自身的四个参数(直线的起点和终点)进行了初始化。对圆类的创建方法与直线类CLine类似,圆除了具有图形元素的基本特征外,还有自身的几何特性,可以用圆心和半径作为特征参数表示圆的几何特性。圆是圆
14、弧的一个特例,当圆弧的弧度等于2时就是圆。所以可以从一个圆类派生得到一个圆弧类。矢量图形中可以有大量的标注文本,标注文本除了具有图形元素的基本特性外,还具有位置、字体及标注内容等自身的信息。CText类也有两个构造函数,第二个构造参数有多个参数,并利用多个参数对类的成员变量进行初始化。在构造函数中,调用了基类CDraw的构造函数对基类CDraw的成员变量进行初始化。2) 线类图形元素组织线类图形元素包括很多种,如连续直线、混合线、树状线等,在本设计中,以最简单的连续直线为例进行讨论,对于其他类型线的实现方法,可根据连续直线的实现方法来开发。连续直线除了具有图形元素基类所具有的属性外,从图形的几何特征上,连续直线是由很多顶点组成的,而且顶点数目是不确定的。一条连续直线可能只有两个顶点,也可能有几千个顶点。所以,需要定义一个结构来存储连续直线的一个顶点坐标。3) 面类图形元素的组织面类图形元素一般是由闭合线围成的区域
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1