|
前言
随着计算机图形技术和数据库技术的迅猛发展和日益成熟,国内外各种矢量图形软件相继涌现,在各行业得到广泛、深入的应用,尤其在机械制造、地理信息系统、过程控制及系统环境模拟、电子印刷及办公自动化、艺术模拟、科学计算的可视化、计算机辅助教学等领域内得到广泛的应用。在这种背景下,齐鲁石化公司储运厂以生产管理系统开发为契机,充分发挥计算机矢量图形在生产管理中的作用,进一步规范铁运现场管理,提高齐鲁石化公司储运厂生产水平,开发统一的、功能完备的、能够充分共享资源的二维矢量化图形软件,是一个值得深入研究的课题。而该系统也正是以此为出发点,通过深入的调查、分析,经过近一年的探索和实施,设计出了股道线路图绘制软件,并以组件式矢量图形控件VisualGraph(精简版)为基础,经过可行性研究、系统的总体设计、数据库设计、程序的编写、调试等多项工作,实现了股道线路图绘制,统一存储,快捷检索等功能。
矢量图形概述及开发方式选择
2.1矢量图形概述
矢量图,使用线段和曲线描述图像,所以称为矢量,同时图形也包含了色彩和位置信息。当进行矢量图形的编辑时,定义的是描述图形形状的线和曲线的属性,这些属性将被记录下来。对矢量图形的操作,例如移动,重新定义尺寸,重新定义形状,或者改变矢量图形的色彩,都不会改变矢量图形的显示品质。也可以通过矢量对象的交叠,使得图形的某一部分被隐藏,或者改变对象的透明度。放大后的矢量图形,图像的品质没有受到影响。
2.2几种矢量图形标记语言
GML、SVG和VML都是基于XML6勺可用来描述矢量图形的标记语言,都是XML词表,它们的语法并不难理解,但它们都有各自不同的用途和特点,下面简单介绍一下。
GML(GeographyMarkup Language),是基于XML的空间信息编码标准,由OpenGIS Consortium(OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、Maplnfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。
VML(Vector Markup Language),是一个最初由Microsoft开发的XML词表,现在也只有IE5.0以上版本对VML提供支持::使用VML可以在匝中绘制矢量图形,所以有人认为VML就是在12中实现了画笔的功能。
SVG(ScalableVectorGraphics,可伸缩矢量图像)是W3C在2000年发布的一种开放的标准文本式矢量图形描述语言。使用SVG可以在网页上显示出各种各样的高质量的矢量图形,包括许多图像处理中常见的功能,如图形、文字、动画、颜色、滤镜效果等。最关键的是SVG完全用普通文本来描述。也就是说,这是一种专门为网络而设计的基于文本的图像格式。并且SVG基于XML(Extensible Markup Language),所以可扩展性很强,能够描述任意复杂的图像。
GML、SVG、VML都与矢量图形有着密切的关系:GML在表示实体的空间信息的同时加入了实体的其他属性信息,是表示实体的空间信息和属性的编码标准,但它并不支持直接显示图形。而VML和SVG是在表示图形的矢量信息同时加入了图形的显示信息(即以什么样的样式显示矢量图形),是显示矢量图形的两种比较好的格式。相比之下,SVG是综合了VML的优点后推出的,是国际标准,它比VML具有更多的优点,也有更广阔的前景。
2.3开发方式的选择
矢量图形软件的开发是当前计算机图形领域中一个热门课题。作为一次矢量图形应用软件的开发,首先要考虑软件的开发成本和开发的周期,其次是开发的难易程度,最后要考虑使用的工具。
基于对国内外常见的几种实现方式的分析和比较,考虑到对开发工具的熟悉程度和矢量图形控件的价格因素,以及对国产软件的支持,我们选择了北京图王的VisualGraph基本控件在C#.NET开发平台下开发股道线路图绘制软件。
软件关键技术
3.1表格填充算法
3.1.1表格填充描述
所谓表格填充,是指将选中的文字单元格按一定规律填充用户所需的信息,可以是用户指定文本或特定类型的序号。例如,选择”类型”为”一二三…十”,被选择的单元将从左到右或从上到下依次填充为:一、二、三…,超过的单元不填充,,如果将填充间隔设为2,填充情况应为”二、四、六…”。除”填充文字”夕L,其他类型均为序列,用法与此例相同。
填充的方式分为:替换、前插和后插三种。
替换,指用填充的内容将把单元组中原来的数据代替,覆盖原内容。
前插,指将填充内容插入到各单元现有数据之前。
后插,指将填充内容插入到各单元现有数据之后。
3.1.2表格填充实现
将所有被选中单元格左上角的坐标(x,y)分别存放
到两个数组中,然后将数组按从大到小进行排序,再将选中的单元格按用户设定的从左到右或从上到下顺序在数组中进行排序,最后将所要填充的内容按数组中顺序依次写入到单元格中。
3.2图元库载入算法
3.2.1图元库描述
所谓图元库,就是使用该软件绘制的多页面矢量图形文件,每一个TBL格式图形文件都可以作为一个图元库。图形文件作为图元库,图形文件中的每一个页面是库中的元件。可以方面的多选几个TBL文件作为元件库组,用户可以象使用基本图元(文本、直线、折线、曲线、矩形、椭圆等)一样方便的使用图元库中的图元。
图元库的载入,指将选中的TBL格式文件分页解释,生成缩略图加载到图元库列表中,供用户重复使用。
3.2.2图元库载入实现
打开选择元件库对话框并获取所选中的元件名,然后通过循环将所选择元件信息写入本地注册表中,再清空系统中原有的元件,最后将新选择的元件库逐个分解,生成临时图像文件,并逐个加载到图元库列表中。
软件的设计
4.1系统设计方案
(1)设计目标
开发的软件系统首先要操作方便、绘图高效;其次能够绘制各种特种设备部件的图库,并且能够随时调用这些图库;最后,要求减少图形文件的存储空间,并且能够在数据库中进行分类存储。
(2)软件环境
开发的软件系统能够在Windows 2000/xp/2003等版本的操作系统下运行;数据库服务器的操作系统选用Windows 2000 Server。
(3)开发环境
根据齐鲁石化公司对开发的软件系统的要求,数据库服务器选择Oracle 9i。系统的开发平台选择:微软公司的Microsoft Visual Studio.NET 2003,开发语言选用C#,矢量图形控件选用北京图王公司的VisualGraph基础控件。
(4)功能需求
1)页面支持多图层,图层可以隐藏或锁定。
2)在基本图形元素(文字、直线、折线、多边形、Bezier曲线、连接线、矩形、圆角矩形、椭圆、弧线)基础上可以制作种类繁多的各种元件。
3)实现对表格中的文字框进行拆分、合并、编辑、删除等操作。
4)实现在表格中的文本检索。
5)实现表格中特定内容或各类序号的自动填充。
6)线条编辑,允许插点,删点,画曲线,直线,折线,多边形。
7)直接在画面上编辑文字,文字自由旋转,光标也能旋转。
8)保存文件前,允许执行多次撤销和重画操作。
9)任何封闭区域都可以定义背景图片,图片可以透明、能够缩放。
1n)文档打印纸可以自由设定大小和缩放比例,打印和设备无关。
11)实现图形组合和拆分。
12)提供多种连接线,可建立图形间的拓扑关系。
13)提供多种箭头风格,并可以任意自定义箭头。
14)支持多种网格类型定位,但优先连接关系定位。
15)实现所有图形元件对齐方案。
16)实现任意角度自由旋转,旋转中不改变图形元件的其他属性。
17)支持无级别缩放,比例巨大,局部放大,整页、宽度缩放。
18)允许设定图形的透明度。
(5)采用的技术和实现方式
该软件系统在开发过程中将使用的技术大致包括:面相对象程序设计(OOP)技术、XML技术、图形设备接口(GDI+)技术等。
结束语
经过近一年的探索和实施,设计出了股道线路图绘制软件。该软件在齐鲁石化公司储运厂经过近半年的测试和使用,取得了满意的效果.达到了预期的设计目标。
参考文献
川石家骏.特种设备检验机构的地位与作用.中国特种设备安全.2006:22(8)-22-24
[21陈建春.矢量图形系统开发与编程.电子工业出版社.2004
[3]支琴,杜宝江.基于WebGIS的生产自动化图形信息系统.仪器仪表学报2004增刊(下册).2004.835—836 (责任编辑:邹晓非) |