【精品】VC++开发GIS项目程序设计(源代码+论文+开题报告)
收藏
资源目录
压缩包内文档预览:
编号:1639482
类型:共享资源
大小:4.58MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
开发
gis
项目
程序设计
源代码
论文
开题
报告
讲演
呈文
- 资源描述:
-
【精品】VC++开发GIS项目程序设计(源代码+论文+开题报告),精品,vc,开发,gis,项目,程序设计,源代码,论文,开题,报告,讲演,呈文
- 内容简介:
-
# . # $ . # $# # # 1 2 . # # $ () # $# $ () 1 2 . # $#.# $ () $#K $ () # $#K $ ()# $#()# 8 3 .# K $ 1, 2, 3, 4 ()# $1, 2, 3, 4 #K $() 4# $#/() ()# () # () # () # $ ()# $#K $ (V, T) .# $#K $()# $#K $ # $#()# ()# ()# ()# ()# # () # , 2, . ()# ()# ()# ()# 1# # # ()1. ()2. 3. # () 7# () 9# #() 10 # () 6# () 6# () 4 4 # ()# () # ()# #$# #$# #$()# #$# #$()# #$# #$() #$()# #$()# #$# #$# # # # default#1$ 1# # $ () #$ () #$ () #$ () #K $ () # $#, # # $ ()# $#K $ /# $#K $ ()# $ # .# ()# = = of is a a of in of up at to a or is It is is a of of It ES be +to or to to to is an is as s is by +. in , is DI is to in to , of , is by to s by , to a a is + to of to or FC in a is in a s to + or it to ( If t do of I of in of #1 . 1# $ . # $# # # 1 2 . # # $ () # $# $ () 1 2 . # $#.# $ () $#K $ () # $#K $ ()# $#()# 8 3 .# K $ 1, 2, 3, 4 ()# $1, 2, 3, 4 #K $() 4# $#/() ()# () # () # () # $ ()# $#K $ (V, T) .# $#K $()# $#K $ # $#()# ()# ()# ()# ()# # () # , 2, . ()# ()# ()# ()# 1# # # ()1. ()2. 3. # () 7# () 9# #() 10 # () 6# () 6# () 4 4 # ()# () # ()# #$# #$# #$()# #$# #$()# #$# #$() #$()# #$()# #$# #$# # # # default#1K $ () 1# $#, # # $ ()# $#K $ /# $#K $ ()# $ # .# ()# = = of is a a of in of up at to a or is It is is a of of It ES be +to or to to to is an is as s is by +. in , is DI is to in to , in DI , to of to is an is as DI is by is by to s by , to a a is + to of to or FC in a is in a s to + or it to ( If t do of I of in of 外文资料 1 a of of of is in to at to n of of a of in to at is to ce to it r in of is is a if of ge of of d of A,ut 962 s of to to in a s , of to to in of an to to be in of of a of at a is a is 965 at a to a in an is he a of of is of of of of by an a as to is s in is is in it is to is in as up to is of to in in in to to up ta to to is as to its to of is of in 0 in w of is to in to to s is a a no a as of to at in to to in in in be in in is to of to to is do of in in a a in to is as of is to to is a be to in in 4 to s 3 of of of by he of IS as to of of IS is is IS is as he of to IS a us to of in of at Ds to on a us is an R of We in in in in a of R in 3 a of 3 in an of to to in to be to of to an to to is or a be in to to in a in of ur in or of s. is of go to it ,000,000 an at at 000 r a to to go to nd is at a of a th to to 0%, to of a a to to m is an a as of is an as of an at s of a of it to t in in is a at of in at up a is an in to e in of of he of in in it of of m of is an to to a in of is a as a an a a, to of an as if a of is of of to e to of of c of is at to es in to a of to in is of a of a of of to of he a it a s to to of ( is a ly in of of to on is an e of of ct to is to on he to of it to to to in to of he to od of a a is a is a of it 中文翻译 二十一世纪是信息化、网络化、数字化、智能化蓬勃发展的新世纪。世界范围的新技术革命和知识经济的浪潮,推动发展中国家和发达国家在电子信息技术的创新和应用领域重新站在同一起跑线上,共同面对新的发展机遇和挑战。在当今这 个信息化的社会中,谁能更有效地利用自身资源,掌握更全面、更准确的信息,更快地作出科学的决策,谁就能顺应社会的潮流,在激烈的竞争中站稳脚跟,并同时给企业带来更高的回报。地理信息系统( 一种为了获取、存储、检索、分析和显示空间定位数据而建立的计算机化的数据库管理系统。地理信息系统的处理对象是空间实体,其处理过程正是依据空间实体的空间位置与空间关系进行的。 地理信息系统具有很高的融合能力,它与其它信息技术融合,拓展了整体信息技术的应用。信息化、网 络化、数字化、智能化的浪潮汹涌澎湃,数字城市正是这股浪潮的潮头,如果我国能够抓住历史赐予的跨越式发展机会,中国的城市规划、建设和管理水平将极有可能冲进世界先进国家的前列,并带动相关产业的发展。 一 发展历史 自 1962年加拿大人 加拿大地理信息系统( 称 “)以来,地理信息系统在全球范围内获得了长足的进步。作为对 人类生活空间的数字化描述、分析和表达的工具, 逐渐成为信息产业的一个重要组成部分,成为国民经济新的增长点。全球范围内从事 论和应用研究的研发人员、科研院所和高新企业不计其数,应用科学化、科学技术化、技术产业化已经成为 域发展的主旋律。地理信息系统正在从一个单纯的应用系统发展为一个完整的技术系统和理论体系。 理信息系统)的发展是从 1965 年开始的,当时哈佛大学一个土地测量专业的学生在毕业论文中提到这样一个想法:能否把数据系统与地理测量融合在一起。于是,他设计了一个最简单的 统 ,并在毕业后成立了 司。现在它是全球最大的 统方面的公司。 经过几十年的发展, 统已由地学领域的应用演变为以服务地学领域应用为主要目的的 “ 基础型 ” 平台软件,以服务商用办公领域为主要目的的 “ 桌面型 ” 平台软件和以服务于城市公共设施管理为主要目的的 am/fm/统等多个分支。 仅应用在地理、地质等专业领域,目前在各个领域都有广泛的应用,如水利 、电力、石油、交通、电信、公安、环保等。 从概念上来说,地理信息是指表明地理环境要素的数量、质量、性质、分布特征、联系和规律等的数字、文字、图像、图形等信息的总称。通过地理信息技术,把有关地球每一点的全部信息都收集起来,整理加工成便于使用的数据,并按地球的地理坐标存放起来,需要时立即传输到相应的地方,并在此基础上,对其进行加工、整理,为各类应用领域的分析、管理、决策提供更加科学的依据。 从系统角度看,在未来的几十年内,地理信息系统将向着数据标准化( 数据多维化( 3d 4系统集成化( 系统智能化( 平台网络化( 应用社会化(数字地球)的方向发展。 用系统具有以下特征: am/fm/统的主要功能是对 施网络管理和控制,侧重于对线状设施拓扑描述。 地理图形数据仅是系统中一种 “ 恰当的、直观的 ” 背景辅助数据,即使没有地理图形数据,只需主体图形数据的支持,系统就能照常运行。 am/fm/统往往需要在多个部门中同时进行维护和共享,因此数据要进行 频繁的非线性动态更新。系统根据 专业应用规则,保证数据更新在整个系统中的一致性。因此, am/fm/用对 “ 协同工作环境 ” 有较高的要求。 城市 am/fm/据更新的实时性、操作响应的实时性是 am/fm/用软件必须保证的基本技术要求。 am/fm/统应用对象千差万别,因此, am/fm/台必须具有良好的适用性和开放性。 从技术角度看,与 切相关的技术有 遥感技术 (利用遥感技术,可以每隔一段时间 通过卫星把地球表面无一遗漏地扫描一遍,取得最新的数据资料。目前,在它拍摄的照片上,其分辨率已足以使地面上如汽车前灯大小的物体清晰可见。这里面包含了计算机、图像处理、大规模数据存储和空间对地观测等多种技术。 全球定位系统 (一个在任何特定时间内可以准确了解你在地球上的位置的高科技工具。 大约 24 颗绕地球运行的卫星组成,这些卫星向地球上的接收机发送信号。 收机根据收到 2 3 颗卫星的信号就可以精确地计算出你所在位置的纬度和经度。 二、 市场应用 “ 数字城市 ” 离不开 “ 城市 城市的信息化为城市 展带来了机遇。实毕业设计(论文)开题报告 课题名称 基本 统开发 院系名称 计算机科学系 专业名称 计算机科学与技术 学生姓名 徐立双 指导教师 路澄 1、 课题的意义: 术已经成为 重要组成部分。利用 术开发的以多媒体,网络化,自动化为特色的信息处理,信息管理,指挥调度和决策支撑系统,已经在各领域发挥着重大作用。 术已经成为电子商务,电子政务,电子军务的重要技术支撑。 普通管理信息系统( 矢量图形系统结合在了一起,克服了普通 大提高了系统的直观性 和可操作性,同时提供了普通 不能解决的功能,如空间信息统计,空间信息计算,网络分析等。 2、课题研究内容 一个最基本的 要包含如下的组成部分:管理空间坐标数据的矢量图形系统,管理属性数据的数据库管理系统,以及实现矢量图形系统与数据库管理系统双向连接的连接系统以及空间分析功能等。 矢量图形系统是 重要部分,也是开发 统时的重点所在。一个基本的矢量图形系统一般需要如下的功能: 1相对完善的图形元素,应具备处理点,线,面,网络等图形元素的能力,这类图形系统在很大程度上能够满足普通 的管理型 矢量图形系统的要求。提功矢量显示图形的功能在很大程度上能够改善矢量图形界面的质量。 具备图形的放缩,移动等各种操作功能。 具备鼠标交互绘制功能,图形数据交互输入等功能。 色,线形等的设置功能。 理图形元素的容量应该能够达到一般实用要求。 数据库管理系统是 统的又一重要组成部分,用来管理 的各种属性 数据。一个基本的数据库管理系统需要提供以下的操作功能。 现操作界面实现对数据表的浏览。 够对数据表进行增加记录,修改记录,删除记录等操作。即可以任意修改数据表的内容。 够提供操作界面,任意组织数据表的过滤条件,对数据表进行查询操作。 够组织排序字段,对数据表进行多字段和可选顺序的排序操作。 3、所用工具: 本设计所用工具为 用 开发以信息管理,决策服务及设计为主的实用 统时,具有良好的应用前景。在很多情 况下,建立 目的,不是为了能够管理图纸,海量的坐标数据及属性数据,而只是利用 术来完善 系统的功能,在这种对空间坐标数据的管理要求并非很高的情况下,应用 可以迅速开发出满足要求的实用 统,并在灵活性,可操作性等方面具有无可比拟的优点。 灵活性是利用 开发 最大优点。应用 开发 统时,因为系统的所有流程和数据都可以在开发者的控制之下,可以根据系统的具体要求实现具体的操作功能,在一些 别是在一些小型或并非以传统的 能为主的)系统 开发时,具有不可比拟的优势。它可以根据系统的需要来实现功能,设计的系统短小精悍,软硬件要求不高,运行速度快。 用 开发的 使用 业开发工具不同。用 业开发工具开发 ,开发者所做的只是在别人系统基础上的简单开发和应用,完全受专业开发工具的制约,开发者形成不了自身的技术积累和创新;而用 开发 以在开发过程中,不断完善和综合开发技术,从各个方面进行完善,把系统的开发从应用项目级提高到开发工具级,最终能够完成自身的 发工具和低层开发技术。以此为基础,可以在管理系 统,决策系统,控制系统,报警系统,辅助设计系统等各种实用 统开发中得到迅速的应用。 4、研究方法 首先,用 生的应用程序 基础上,具体组织一个基本矢量图形系统的开发。该过程涉及与矢量图形系统设计有关的类及其主要操作。从矢量图形系统的类组织,文档管理,视图组织,图形交互绘制,图形操作, 图形选中,图形旋转,图形移动,图形删除,图形存取等各个方面开发实现一个用于 基本矢量图形系统。 其次, 基本功能上应该还包含一个数据库管理系统,用来管理 属性数据 。利用 的 口开发数据库管理系统,实例开发一个应用于 现通用的数据库浏览功能,数据库记录编辑功能,以及通用的数据库过滤功能。同时,逐步掌握通用数据库管理系统的方法和技术。 5、研究步骤: 第一步:熟悉一下进行 用程序设计的方法,熟悉 用程序框架的组成结构,并掌握辅助程序设计的各个工具的工作基础和使用方法。 第二步:熟悉一下与绘图有关的 的功能及相关操作。 第三步:在用 生的一个应用程序 础上,具体组织开发一个用于 矢量图形系统。对矢量图形的操作功能包括对图形的重画,无级放缩,移动,恢复上屏,重画全屏等功能,并实现滚动视图。 第四步:熟悉用 的 口开发数据库管理系统的技术,实例开发一个应用于 数据库管理系统,实现通用的数据库浏览功能,数据库记录编辑功能,以及通用的数据库过滤功能。 第五步:在完成基本矢量图形系统和数据库管理系统的基础上,建立两者之间的联系,实现一个基本 6、关键技术问题: 矢量图形系统是 重要组成部分,也是开发 的重点所在。在不同领域应用 需要 的矢量图形系统的功能是有差别的。建立一个城市信息管理 ,要求矢量图形系统要有丰富的图形元素,丰富的线形,巨大的存储容量,完善的输入和输出功能,强大的地图编辑功能,甚至需要三维显示和处理能力;而有些管理型 需要的矢量图形系统,可能只需要具有简单地处理二维普通图形元素的功能。 数据库管理系统是 另一重要组成部分,用来管理 的各种属性数据。可以采用不同的方法来开发这个数据库管理系统。最常用的开发数据库管理系统的方法是使用 为一种开放的数据库标准,可以用来使用各种数据库系统 的数据库文件作为数据源,使用 言作为操作和查询语言按照统一的方法来实现数据库管理系统。 7、参考书目: 1、 C+程序设计教程 钱能 主编 清华大学出版社 2、面向对象程序设计 蔡宇辉 李军义 译 机械工业出版社出版、发行 3、 + 用教程 杨永国 主编 清华大学出版社 4、最新 + 使用手册 夏云龙 等编著 电子工业出版社 5、 + 开发 统 陈建春 编著 电子工业出版社 摘 要 近年来,地理信息系统( 储存和处理与地理空间分布有关信息的集合。在各行各业得到越来越广泛的应用, 其混合数据结构和独特的地理空间分析功能独树一帜 在税务系统中也开始广泛的应用,不仅仅表现为提高管理的效率,而且增加了管理的功能。通过对组件式 比较了 C+等技术,我们决定选用 基于 进行 开发企业分布地理信息系统。 本系统借助计算机完成企业的分布的电子地图,首先注册才能获取应用的权限,实现了鹰眼功能,一个 地区 地图的放大 缩小 漫游,箭头 编号 标柱 点选 框选 圆选 选择符号 图层控制 按企业编号,企业名字查找 及企业的添加,删除等功能,当然后几项功能只有管理员才可以有使用权限。当选择选择方式进行选择之后,可以显示出被选中企业的名字,然后你可以点击企业的名字在地图上就会把这个企业的位置显放大显示在中心位置,况且不断的闪烁,还可以显示企业的详细信息 关键词: ; 地理信息系统 ; 电子地图 is of of to of a of s of of it to be be by of as as of IS of C+, we to C+ on of By of of be It as of in of a s of a of to be to of be of As of of be in of a of a to of I am to in a : ; 武汉 科技学院 2005届毕业设计 (论文 ) 1 1 实现图形系统的文档和视图 织矢量图形系统的图形元素类 城市的信息化为城市 际上,城市信息化表现为政府管理与决策的信息化(数字政府),企业管理、决策与服务的信息化(数字企业),市民生活的信息化(数字城市生活),即 “ 数字城市 ” 。由此可见,城市 “ 数字城市 ” 最核心的部分,可以分为政府 业 社会 “ 数字城市 ” 的发展,要求政府、企业和社会 过数据通信网络将政府、企业和社会联成一个整体,实现资源的共享。 历史给了我们中国人特殊的超越他人的机遇。美国人、 加拿大人、西欧人在通讯基础设施,政府、企业信息系统建设,信息系统互联互通,以及网络社会、网络社区四个阶段循序渐进的发展中占尽先机。但是当时的 3 维 术、 4遍美国、西欧、加拿大、澳洲的城市政府网站,基于 4D 数据、三维表现、借助虚拟现实技术的凤毛麟角。 时间和市场为我们创造了超越的重大历史机会。这个机会就是数字城市中三维和 术的开发和应用。抓住机遇,我国的数字城市将大放异彩。我们认为中国的数字城市特色应该定位在:建设具有 4D 数 据的城市基础地理信息公共平台;建设以 3 维和 术为主的城市规划、建设和管理业务专业应用系统。集中抢占数字城市 “43的技术应用战略制高点,形成中国数字城市 “43的特色,开拓中国数字城市独特的市场空间 10。 面向对象的程序设计,是目前程序设计的主流方法,在本设计中,将利用面向对象的程序设计和 C+类的组织方法,组织建立一个基本矢量图形的图形元素类。组织实现的矢量图形系统,能够处理点类、线类、面类、网络点等类别的图形元素,其中点类图形元素有包括直线,圆,圆弧,子图,标注文本等图形元素,针对每类图 形元素组织建立起对其进行管理的 C+类,并把每个图形元素作为一个独立的对象来管理。 形元素基类的组织 对各类图形元素进行分析,可以发现各类图形元素具有一些相同的属性和操作功能,如图形元素的颜色、线型线宽所在层等属性和得到一个图形元素是否做了删除标志等操作。 把这些图形元素中共性的东西(属性和操作),组织存放在一个图形元素基类 (,具体的图形元素由这个基类来派生。 类图形元素组织 5 对于点类图形元素,其基本特性是各个图形相互独立,且每个图形元素具有有限个固定的特征点 。 直线的基类是 在直线类的构造函数中,共有包括 11 个参数,并利武汉 科技学院 2005届毕业设计 (论文 ) 2 用前 7个参数调用基类 基类的成员变量进行初始化,而在本身的构造函数中对直线类 线的起点和终点)进行了初始化。 对圆类的创建方法与直线类 似,圆除了具有图形元素的基本特征外,还有自身的几何特性,可以用圆心和半径作为特征参数表示圆的几何特性。 圆是圆弧的一个特例,当圆弧的弧度等于 2时就是圆。所以可以从一个圆类派生得到一个圆弧类。 矢量图形中可以有大量的标注文本,标注文本除了具有 图形元素的基本特性外,还具有位置、字体及标注内容等自身的信息。 二个构造参数有多个参数,并利用多个参数对类的成员变量进行初始化。在构造函数中,调用了基类 子图是各类图形元素的集合体,是由多个图形元素组成的整体。为了在图形中插入子图,必须首先建立起管理子图所包含的图形元素的类,形成一个子图定义体,将选定的子图块以一定的横纵比例插入到图形中指定的位置,就形成了一个子图块。 类图形元素组织 线类图形元素包括很多种 ,如连续直线、混合线、树状线等,在本设计中,以最简单的连续直线为例进行讨论,对于其他类型线的实现方法,可根据连续直线的实现方法来开发。 连续直线除了具有图形元素基类所具有的属性外,从图形的几何特征上,连续直线是由很多顶点组成的,而且顶点数目是不确定的。一条连续直线可能只有两个顶点,也可能有几千个顶点。所以,需要定义一个结构来存储连续直线的一个顶点坐标。 类图形元素的组织 10 面类图形元素一般是由闭合线围成的区域。根据围成面的边界不同,有不同形式的面,如圆形区域椭圆形区域复合线区域多边形区域 等。最常用的面是多边形区域,其边界由一条连续直线组成。因为另外各种类型面的边界一般都可以用连续直线来近似描述,所以,本设计只讨论多边形区域的实现方法。 在描述多边形区域时,最主要的是要描述边界顶点坐标。描述面的边界顶点坐标时,有不同的描述方法,一种方法是将边界由几段连续直线来描述。 另外一种描述方法是直接存储区域的边界顶点坐标,即把区域的整个边界作为一条连续直线来存储。这种方法的缺点是造成坐标的重复存储;优点是具有较强的独立性,不用考虑组成区域的连续直线段。 在本设计中,采用直接存储边界坐标的方式。用这种方 式组织多边形区域时,组织方式与连续直线类似。所以,可以由连续直线类 生出一个对多边形区域进行管理。 络类图形元素的组织 网络分析是 一项非常重要的基本功能,最佳路径分析、最佳游历路径分析、连通分析、资源分配等都需要有网络类图形元素对网络进行描述、显示和分析。为了能够对网络进行描述和处理,在系统中增加一类图形元素来描述有方向、无转角的网络图。这类图形元素称为网络点。 武汉 科技学院 2005届毕业设计 (论文 ) 3 形参数类 在矢量图形系统中,图形参数是集中存储的。在图形元素基类中成员变量存储的是颜色列表的序列号, 存储的也是在图层列表中的序列号。 织矢量图形系统的文档 织面向对象的文档管理机制 管理矢量图形系统图形数据的方法即文档管理机制。在本设计的开发中,采用一套完全面向对象的文档组织机制。这种机制就是通过图形元素类创建很多图形元素对象,每个图形元素对象作为一个整体来组织存储空间的分配、存取等各种管理功能。然后通过建立一种存储机制,来管理指向所有图形元素对象的指针,达到管理所有图形元素对象的目的。这种文 档管理机制具有组织简单结构化和移植性好,以及比较容易利用 程序设计语言的开发功能等优点。缺点是需要较大的内存空间。 用 板创建管理图形元素对象指针的对象 管理一个矢量图形系统文档的思路是:每个图形元素是图形元素类创建的一个对象,在创建这个对象时得到指向这个对象的指针,建立一个对象指针数组来管理这些指针,以达到管理所有图形元素对象的目的。 在 下可以较容易地实现对指向图形元素对象的指针的组织和管理。在有一个类模班 以用它来创建一个管理类指针 的对象。例如,可以定义一个管理 指针的对象如下: 10 现矢量图形系统的文档 在应用程序 以派生几个 文档类 创建几个管理各类图形元素对象指针的 象如下: 现文档的管理功能 增加图形元素 在应用程序 增加一个图形元素对象(如一条直线)时,需要进行以下两个步骤的操作: 武汉 科技学院 2005届毕业设计 (论文 ) 4 首先需要创建一个图形元素对象,并用图形元素的实际数据初始化这个图形元素对象。如增加一条直线时,需要创建一个 象,并用这条直线的实际数据(起终点、所在图层、颜色等)初始化这个 象的成员变量。 然后需要把指向新创建的图形元素对象的指针,增加到文档类中管理图形元素对象指针的对象中。如增加一条 象后,需要把指向这个象的指针增加到文档类的 象中。 为了实现增加各类图形元素的功能,在文档类 定义几个函数, 分别来完成增加各类图形元素的操作功能 3 1,1,2,2); x,y, 这 8个函数分别用来实现增加一条直线、一个圆、一个圆弧、一个标注文本、一个子图、一条连续直线、一个多边形区域、一个网络点的功能。函数返回指向新增图形元素对象的指针。 得到指向图形元素对象的指针 在一个矢量图形系统中,有大量的图形元素,指向图形元素对象的指针被保存在文档类对应的 象中。在系统的操作过程中,为了实现对图形元素的各种操作功能,需要得到指向指定图形元素对象的指针,为此,在文档类定义一个函数 b, ; 在实现文件 ,加入函数的具体实现代码。 删除图形元素对象 为了能够从 象中删除一个指定图形元素对象指针,在文档类 武汉 科技学院 2005届毕业设计 (论文 ) 5 b, 在实现文件 ,加入函数的具体实现代码。 得到各类图形元素的数目 为了能够随时得到文档中各类图形元素对象的数目,在文档类 ,定义一个成员函 数如下: b); 在实现文件 ,加入函数的具体实现代码。 得到存储各类图形元素 象数组的最大下标 在对各个图形元素类的所有图形元素进行操作时,需要得到存储在各个象中的最大数组下标,然后对各个数组项实现遍历操作。为了得到存储在各个 象中的最大数组下标,在文档类 定义一个函数如下: b); 在实现文件 ,加入函数的具体实现代码。 得到某个识别号的图形元素对象指针在 组中的存放位置 b,D); 在实现文件 ,加入函数的具体实现代码。 增加网络连接 对于一个网络点来说,其最主要的特性就是指向其他网络点的连接。 为了增加网络连接,首先在 中定义一个增加网络连接的函数 函数的参数是连接要指向的网络点的识别号; 在文档类 定义一个函数 现在一个网络点中增加一个指向另外一个网络点的连接。 在实现文件 ,加入函数的具体实现代码。 现矢量图形系统的视图 立坐标系 建立坐标系 该坐标系取屏幕的左下角点作为图形屏幕的基点。客户区的左下角的坐标定义为 ( 并确定一个变量 为逻辑坐标和实际坐标的比例关系。 实际坐标与逻辑坐标的转换 为了实现实际坐标 与逻辑坐标的转换,在视图类 定义如下的四个转换函数: x, y, X,Y); x, y, X, Y); 武汉 科技学院 2005届毕业设计 (论文 ) 6 l); l); 函数 来将逻辑坐标转换成实际坐标,参数( x,y)是一个点的逻辑坐标,参数( *X ,*Y)返回转换后的实际坐标值。 函数 实际坐标长度转换成逻辑坐标长度,参数 l 是一个实际坐标长度,函数返回逻辑坐标表示的长度值。 四个转换函数中用到的成员变量,在视图类 定义: 为了在应用程序 其他类中能够使用四个坐标转换函数,可以定义四个全局函数来实现转换操作功能,在实现文件 ,定义四个全局函数如下: x, y, X, Y); x, y, X, Y ); l); l); 以上四个全局函数利用视图类指针 用视图类的四个坐标转换函数,来完成坐标和长度的转换功能。如果在某个实现文件中使用这四个全局转换函数,只需在这个实现文件中的开始处加入全局函数的外部引用: x, y, X, Y); x, y, X, Y ); l); l); 在四个全局函数中, 向当前激活的视图对象。 一个在实现文件 现各类图形元素的绘制功能 利用虚函数实现各种图形元素的绘制功能。在图形元素基类 ,抽象定义一个进行绘制操作的虚函数。因为在应 用程序 用 直接来创建对象,所以可以将虚函数定义成纯虚函数: 8 0; 在各种图形元素类 ,重载虚函数 现视图 为了实现应用程序 图形绘制工作 ,在文档类 定义 数如下 : 武汉 科技学院 2005届毕业设计 (论文 ) 7 类图形元素几何属性的计算 以上定义的各类图形元素 ,除了坐标数据外 ,还有一些最基本的几何特征 ,其中最主要的两个特征是长度和面积 素的长度和面积 ,在图形元素基类 定义了两个虚函数 : ; ; 直线圆圆弧连续直线等图形元素都具有长度属性 中重载计算长度的虚函数 ; 图形元素圆和多边形区域具有面积属性 和 中重载 2 鼠 标交互绘图 鼠标绘图要解决的主要问题 获鼠标操作消息 提供了足够的窗口消息和已经保护的消息处理函数解决这个问题 实现鼠标交互绘制图形元素时 ,将主要用到以下三个鼠标操作 : 鼠标移动 : 下左键 : 下右键 : 捕捉所有的鼠标输入 在用鼠标交互绘制一个图形元素时 ,在已经开始绘图的情况下 ,不希望还能进行别的操作 ,以避免造成系统流程和变量初始化等方面的错误 提供了两个成员函数来满足以上的功能需求 : ; ; 屏幕上拖动图形 在用鼠标交互绘制图形元素时 ,为了直观的看到所绘制的图形 ,一般采用拖动图形的方法 . 存图形数据到文 档 用鼠标在屏幕上交互绘制的图形元素 ,要创建一个图形元素对象并将指向这个图形元素对象的指针保存起来 . 图形以实际的形态重画 武汉 科技学院 2005届毕业设计 (论文 ) 8 用鼠标交互绘制一个图形元素后 ,要在屏幕上马上显示出这个图形元素的实际形态 ,必须将图形元素以实际的形态重画 C+的 制模式下 ,线条不是彩色的 ,拖动的图形都不是用图形元素的实际颜色 在矢量图形系统设计中 ,一般采用 象 ,在交互绘制图形元素操作完成后 ,即时在视图中重画这个新增的图形元素 . 互绘制 各类图形元素 本设计主要实现交互绘制直线、圆、填充圆、圆弧、标注文本、连续直线、多边形区域、网络点的实现过程 . 入绘图菜单 增加菜单资源 . 在应用程序 菜单资源中 ,增加一个菜单 ” 鼠标绘图 ” 增加菜单的消息处理函数 cx, ; ; ; ; ; ; ; ; ; 在实现文件 增加了函数的消息映射机制 : 在实现文件 增加了消息处理函数的实现代码 . 得图形元素的唯一识别号 我们设计的矢量图形系统 ,对于任何一个图形元素 ,必须有一个能够与其他武汉 科技学院 2005届毕业设计 (论文 ) 9 图形元素区分开来的属性 ,为每类图形元素创建惟一识别号的方法如下所述 . 唯一识别号的范围 在应用 程序 ,将采用同类图形元素具有惟一识别号的方法 ,即每一类别的图形元素具有不同的成员变量 得到图形元素的惟一识别号 为了得到每类图形元素的惟一识别号 ,在文档类 定义一个成员函数 : b); 函数 参数 来表示图形类别 ,假如函数的实现代码 . 次完成对直线、圆、填充圆、圆弧、标注文本、连续 直线、多边形区域、网络点、网络连接的绘制 . 3 矢量图形系统的操作功能 1. 1 增加图形操作菜单 加菜单资源 加消息处理函数 在视图类 ,加入消息处理函数的定义 : ; ; ; ; ; ; 在实现文件 ,加入消息映射机制和空的消息处理函数形重画 所谓图形重画,就是把当前视图屏幕重新绘制一次,实际上也就是让视图类的函数 重新执行一次。根据需要重画区域的不同,图形重画可以分为全屏重画和局部重画。 武汉 科技学院 2005届毕业设计 (论文 ) 10 屏重画 5 在很多情况下,需要将当前视图屏幕全屏重画。两种方法如下: 在视图类函数的实现代码中,用以下代码来激活重画机制: ; 函数 属于当前文档对象的所有视图重画。如果应用程序采用的是单文档结构,系统只有一个视图,执行此命令时使这个视图失效并重画,即激发视图类的 行;如果应用程序采用的是多文档结构,一个文档对象可能具有多个视图, 使属于这个文档对象的所有视图都重新绘制。 在视图类函数的实现代码中,用以下代码激活重画机制: ; 数使当前视图屏幕的客户区失效,从而激活图形重画。只能使当前视图重画,而与其同文档的其他视图并不重画。 实现图形重画功能 要实现图形重画功能,需要对视图类 数进行修改。修改后的代码如下: ; ; 数首先得到指向当前文档对象的指针,然后调用数 部重画 在很多情况下,往往只希望将当前视图屏幕的一部分区域重画,即局部重画。在 中,以下两个函数可以完成此功能。 数的定义为 : 函数 使视图中一个指定的矩形区域重画。这个函数的调用方法与函数 似。参数 存储着视图中需要重画的区域,参数 于指定当区域重画时,背景是否擦除,当 ,背景被擦除,当 景保持不变。 数 数的定义为: 函数 功能和使用方法与函数 似,惟一不同的是函数 数 数可以使一个已经初始化的 象所指定的武汉 科技学院 2005届毕业设计 (论文 ) 11 区域重画。以下代码可使 形放大和摆动 图形放大指的是通过调整视图屏幕,使当前视图屏幕中的一部分区域放大显示到整个视图屏幕中。图形摆动指的是通过调整视图屏幕来显示图形的其他部分。 形放大和摆动的方法 图形放大 矢量图形系统应具有无级放缩的功能。所谓“无级”,指的是图形能以任何的比例进行显示。在应用程序 经建立的坐标系基础上,可以很容易实现图形的无级放大。实现图形放大的操作方法很多:如可以进行固定比例的图形放大,在这种放大方式下,用鼠标点中图形的一个点,系统会把图形放大一个固定的比例,鼠标按中点处于放大后的图形屏幕中心;再如可以通过窗口放大,在这种放大方式下,有鼠标在图形屏幕上选中一个窗口区域,系统会调整放大比例和屏幕基点坐标,把选中的区域正好放大到整个图形屏幕区域中。本设计将涉及到用窗口放大图形的操作方法和具体实现步骤。在此基础上,可以轻而易举的实现其他方法的图形放大操作功能。 图形摆动 图形摆动的实 现方法与图形放大类似,不同的只是在图形摆动操作时,对于图形屏幕只是参数 变化,比例尺 变。假定图形摆动时,图形从基点到目标点做相对移动 . 用变化后的 实现了图形摆动。 画上屏和重画首屏 图形经过放大、摆动操作后,还要有把图形屏幕再恢复到前一屏幕(重画上屏)或者直接使图形回到第一屏(重画首屏)的功能。要实现重画上屏和重画首屏的功能,就需要记录下每一屏幕的状态,并时刻跟踪着当前的状态。 录屏幕状 态 对图形屏幕进行分析就会发现,一个图形屏幕是由三个参数来确定的 :屏幕左下角原点的实际横纵坐标 显示比例 要记录下这三个参数,就可以记录下这一屏幕的状态。 为了实现记录屏幕状态的功能,在文档类 定义一个结构数组来存储历史图形屏幕。在 /当前屏幕的序号 /最多能存储的屏幕数 /记录屏幕参数的结构数组 结构 头文件 武汉 科技学院 2005届毕业设计 (论文 ) 12 /显示比例 /屏幕左下角横坐标 /屏幕左下角纵坐标 在文档类 定义一个函数,来完成存储一个图形屏幕状态的操作功能 : 在实现文件 ,加入函数的实现代码。 现重画上屏和重画首屏功能 重画上屏 要实现重画上屏操作功能,只需把 值减去 1,从结构数组 实现文件 ,将“重画上屏”菜单项的消息处理函数 实现代码修改如下: 5 ; if()/如果当前不是首屏,当前图形屏幕序号减 1 ; /重画图形 在视图类 在实现文件 重载的虚函数 它指向当前文档对象中的结构数组 ; 重画首屏 对于重画首屏功能来说,只要取出存储在结构数组 对视图重画即可。修改实现文件 的消息处理函数武汉 科技学院 2005届毕业设计 (论文 ) 13 到实现代码如下: /重画首屏 / ; if(0) ; 示全图 在矢量图形系统中,随着一些图形元素通过外部接口或者系统本身的绘制功能的加入,图形首屏可能包含不了所有的图形元素;还有一种情况是,图形中所有的图形元素都在视图屏幕的一个角上,只占图幅的一小部分。这是就需要一个操作功能,调整视图屏幕左下角原点的实际坐标( 显示比例 所有的图形元素正好能够绘制到视图屏幕中(在屏幕上留有一部分边界区域),显示全图功能就是为完成此功能而设置的。实现显示全图功能的思路是,通过得到每一类图形 元素(如直线、连续直线)的边界矩形,然后根据视图屏幕的大小(逻辑坐标)进行计算,得到屏幕的参数 决问题的关键在于得到各类图形元素的边界矩形。 类图形元素的边界矩形计算 5 在图
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。