问题描述
一个程序员开发一个简单要求的图形软件可能比较容易,但要做到专业水准就比较困难了,主要是时间不够,而VisualGraph经过近十年长期的积累,功能全面。例如,多页面、多图层、表格图形混排、透明度、自由旋转、动画效果、自定义网纹、自定义线条、自定义箭头、自定义提示信息窗口、自定义光标、图形保护等等。不仅做到了功能全,而且每个细节都做到极致。这不是一件容易的事。 VisualGraph在每一个细节方面都做到能够应付未来用户可能提出的种种要求。为了解决这问题,创建了独立的脚本语言。在这里你甚至可以用它开发应用软件,更不用说纷繁多样的图库了。 作为专业图形平台,必须要适应所有编程语言(包括Foxpro、PowerBuilder、C#等),为此,我们开发了通用的COM接口,既要照顾到不同语言的能力,同时还要维护自身功能的强大,在编写程序时,设计完备的COM接口能够即时帮助程序员找到所要的属性或方法。图形接口采用OOP思想设计,每一个属性、函数的名称都经过长期反复推敲。脚本语言的编程习惯和一般语言相同,各种属性、函数名称也都相同,尽量取悦于程序员,使他们感觉舒适。 为了使产品在Windows各种操作系统下都能很好工作,我们作了许多特别设计,例如在Windows98操作系统下启用特别编写的绘图算法,而在Windows2000或WindowsXP操作系统下将采用微软更好的优化算法。甚至根据用户计算机配置的不同,能自动选择表现更好的绘图引擎。 为了能够在互联网上使用,插件必须尺寸足够小、速度足够快却不能影响功能,为此,VisualGraph在源代码级每一个环节都自行设计,包括脚本语言、脚本编辑器、XML解析器、甚至数组,没有采用任何第三方技术,即使不压缩,也最多只要1.2兆就包含了全部功能(VC编译)。如果是做产品,当然东西越大越好,但是如果是控件,则越小越好。 为了适应工业上机器常年工作等高强度条件,系统必须做到稳定,产品质量不能有一点点问题,否则就不能用。为了达到这样的要求,每个新版本出来,都要在BorlandC和VisualC两大编译器下编译出最终产品。在大量的测试文档和测试用例下通过。而这些文档和用例都是长期积累下来的。 VisualGraph作为专业组件,主要面向电力、化工、煤炭等工业行业,作为一个市场不大却技术含量极高的产品,和国外比较接近的产品动辄一两百万相比,价格是最低的。以前国内许多公司自行开发图形部分,花费了大量的金钱和时间,还要有长期的维护工作,跟购买VisualGraph投入的资金相比,明显花钱少,见效快。 VisualGraph是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。 VisualGraph图形系统适合开发各种电力软件,如:SCADA系统、图形操作票系统、电网图形拓扑分析PAS软件、调度员培训模拟仿真系统、线损管理系统、无功优化控制系统、远程载波抄表系统等等 VisualGraph是一套强大的交互图形开发平台,她能非常方便地建造基于图形的界面、制作各种图形元件、实现图形管理、图形建模、制作监控系统、表单系统、绘图系统、流程设计、CAD软件等。她提供功能非常强大的ActiveX组件,和其他流行的编程语言共同工作,极大地弥补了这些语言在图形处理方面的不足。也可以嵌入IE浏览器中,实现网上图形编辑和控制等。 VisualGraph专门处理交互图形,与具体业务无关,她提供了十分丰富规范的交互事件和图形控制命令,内置结构简单开放的脚本语言,使程序员能够专心编写后台系统等与图形无关的部分,体系结构十分清晰。 软件特点是: 1、图形文件和图形库是同一种XML格式。也就是说,图形文件同时就可以当作图形库,从而轻易实现图形的继承和嵌套,不需要专门的图库编辑软件。XML格式的文档使得软件开放性、安全性更好,也便于互联网传输和数据库存储。 2、一个文档包括多个页面图形。多页面的设计,相近的业务可以被安排在同一个图形文件中,在图形文件被视作图形库的时候,每个页面被当作图库中的一个图元。 3、页面支持多图层,图层可以隐藏或锁定。这样在处理复杂画面的时候,就可以把图形分类放在不同的图层上。通过令某些图层隐藏、锁定等操作,方便图形的绘制。图形可以很容易改变它所在的图层。 4、基本图形只有三种(文字、形状、线条),却可以制作种类繁多的各种匪夷所思的元件。这是VisualGraph精华所在,我们在其他绘图软件里面看到的图形几乎都能够在VisualGraph中开发制作出来。而VisualGraph能够制作的图形种类和复杂度却远远不是一般图形软件能够达到的。例如可以制作能够动态变化的仪器仪表、各种数学函数、任意按钮开关、设备符号、棒图、饼图、曲线图、各种尺寸线、各种特殊线条、自由旋转的传送带等等,几乎可以说无所不能了,如果软件需要制作一些特殊的图形,那么VisualGraph是不二之选。 5、可以进入元件内部编辑其细节。当一个元件被放在画面上,仍然可以进入其内部,对它进行个性化的修改。 6、方便的线条编辑,持续绘制曲线、直线,修改曲线,允许线上插入顶点,删除顶点。可以指定某些顶点为控制点或者连接点。 7、直接在画面上编辑文字。文字选中一部分可以自由拖动到其他位置。文字单元具有繁多的属性,行间距、字间距、自动卷绕、自动计算表达式、各种边框、对数字的各种修饰方案,还可以设定是否套打等等。 8、对各种修改有无数次的Undo和Redo,许多软件都声称有这个功能,但仔细看看其实并不是全部操作都可以undo、redo无数次,vg在这方面做的比较全面。 9、浮点坐标,图形精细编辑。可以把图形放大许多倍编辑细节。为了避免出现小数点后很多位的情况,软件对绘图结果特别做了一些安排。 10、内置专门的VisualGraph图形语言。这种语言的语法只有几句,变量不需要声明类型,直接赋值即可,函数参数和返回类型也无须声明。关键字支持中文。对象不需要释放。可以访问外部函数库例如WindowsAPI。可以混合编程,调用用户自己语言的函数。每个图形单元都支持事件。 11、每个图形可以定义背景图案,图片可以透明、缩放、平铺。 12、可以编辑EMF格式的图形。如果图形的背景图片是EMF格式的,这个图形可以被转换成VisualGraph的图形元件,可以拆分后编辑细节。从其他绘图软件一般均能够拷贝图形到VisualGraph后再编辑。 13、文档打印纸可以自由设定位置、大小和缩放比例,打印和设备无关。打印纸可以设定是否显示(因为有许多情况是不需要显示打印纸的),打印纸可以用鼠标拖动(因为可能要调整想对位置,当然也可以不允许拖动),可以用鼠标改变打印放大率,当打印纸变大的时候,打印内容相对就缩小了,反之,打印内容就变大。打印纸可以设定打印边界。在某些特殊的场合,打印纸可以设定页眉、页脚等,甚至打印纸支持任何背景图形。 14、文档可以设置背景图形或者各类网纹。和普通图形的背景修饰一样,整个文档可以设置各种图案,各种过渡填充,也可以设置图片背景。 15、支持图形分组。图形逻辑分组,一个图形可以同时位于几个不同的逻辑图形组中,这样可以方便将来的计算、分析。例如你可以把画面上的设备按类型分成不同的组。 16、多种连接线,可以建立图形间的拓扑关系。有直线连接、曲线连接、平直连接,平直连接线自动选择路径,可以用鼠标方便地改变位置和合并线条,在交会点还会自动出现拐弯。非平直连接线如果连接到图形的中心位置,会自动选择合适的边缘连接点。元件设计时允许在任何位置定义任意数目的连接点。 17、多种箭头风格,并可以任意自定义箭头。箭头没有任何限制,可以随便绘制,也可以在程序中对箭头进行任意编程修改。随着线条粗细的变化,箭头随之变化。 18、自定义线型。线条的形状通过修改其绘制区域和非绘制区域的比例来实现。 19、自定义网纹。预定意的网纹大致有80多种,但是如果觉得不够,还可以自行绘制网纹,如果需要更大的网纹,则应该使用背景图片进行平铺。 20、支持多种网格类型定位,但优先连接关系定位。栅格形状有网状和点状两种。栅格的大小被保存到图形文件中,这是为了保证下次载入后能够保留定位信息。如果图形有连接关系,则优先。也就是说,即使某两个图形的连接点不在栅格上,也会自动连接,这是为了使图形在不改变栅格的情况下更方便地连接而特别设计的。 21、支持文字和其他图形两种对齐方案。若干文字单元对齐是按照表格的方式对齐,互相不允许重叠,而若干形状、线条、元件等的对齐则允许重叠。这样特别设计的目的是为了表格的考虑,而且文字重叠在vg中被认为无太大意义。 22、图形镜像,可以保护某个图形不允许镜像。任何图形均允许水平和垂直的镜像,甚至过渡网纹、填充图片也会按镜像变化。 23、支持任意角度自由旋转,旋转中不改变图形其它逻辑。这是VisualGraph又一项重要的特点。任何动态的图形均可以无障碍自由旋转,比如曲线图、棒图、传送带、鼓风机、任何仪器仪表均可以随便转动。这一点,几乎没有什么软件能够做得到。 24、过渡填充、图片、箭头、文字标注、文字光标自动旋转。在图形旋转的时候,VisualGraph已经做得相当彻底,非常完美。本着制作精品软件的精神,才可能做到如此彻底。 25、基本图形、图形元件均可以自定义多个文字标注。折线的每一条边上都可以定义一个文字标注,文字随着线条变化而发生位置和旋转角度的变化。文字标注还可以定义其对齐方式。元件允许定义任意多个文字标注。 26、自定义多种类型的固定存储属性(整数、小数、逻辑、字符串)。这些属性可以在自己的语言中很方便地进行访问和设置其值。属性允许用中文。 27、自定义任何属性,类似流行编程语言中"属性"的概念。这也是VisualGraph重大特点之一,有了这个属性,VisualGraph甚至可以"做任何事"。一般的图形软件在自定义属性方面至多只能定义固定存储属性,却无法做到象编程语言那样的巨大灵活性。有了这个特点,图形元件就有了生命。 28、自定义函数。图形允许自定义私有、公有函数或引出事件,函数支持任意多个参数,函数可以有返回值。 29、众多的图形操作事件。例如鼠标左右键点击、鼠标移入、移出、拖动、改变大小、图形创建、删除、显示均会触发相应的事件。 30、和其它绘图软件互相交换图形。允许把其他绘图软件的图形、图片、文字等拷贝后粘贴到VisualGraph,并且还允许编辑。VisualGraph的图形还可以拷贝后以矢量图的形式粘贴到其它绘图软件中去,进行编辑。 31、通过对象的名字,访问它的属性和函数。不采用Id编号访问,而是象一般编程语言那样的设计,用对象的名字直接访问其成员,例如"变压器1.电压"。 32、无级别缩放,比例巨大。允许局部缩放,整页、宽度缩放。 33、图形可以设定是否打印,文字可以设定是否套打。图形显示和打印如果要求效果不同,这个功能就很有用了。 34、巨大的图形可以整体打印,也可以分页打印后拼凑。前者需要拖动打印纸,改变其大小,后者方便打印巨大的图形。 35、整体或局部图形导出BMP、JPG、EMF格式。因此,用VisualGraph绘制的图形可以转移到其他工作环境中使用。 36、支持读取互联网服务器图形文件。直接打开服务器的文件,VisualGraph会执行服务器上的文件,无需下载。 37、支持从内存读写图形。这样就可以把图形文件放在数据库或者字符串里面,快速载入。 38、支持移动图形到屏幕中间,任意滚动屏幕,手抓屏幕滚动。 39、图形可以计算面积。 40、用程序或者脚本绘图。动态添加、删除图形、动态建立连接拓扑关系、修改图层、各种图形属性等等。在绘图环境中能够完成的操作,都可以用程序或者脚本来实现。 41、支持标尺。如果感觉标尺不满意,可以自形开发和设计标尺。 42、图形锁定和解锁,按住ALT键可以操作已经加锁的图形。 43、划线自动寻找垂足、中点、顶点。 44、支持自定义提示窗口。鼠标在某个图形处允许出现提示信息,默认的提示信息是简单的小矩形框,自定义的提示窗口是一种元件,可以编辑,也可以在程序中动态控制。这样,就可以丰富界面的表现了。 45、元件自定义调控点。每一个调控点允许编写动作程序。例如尺寸线等就是用这种技术实现的。 46、支持报表开发。表格高度智能,允许移线、合并、插入或删除表格行列,支持多种表格边框,还支持斜线。不同于国外电子表格,这里没有行列的概念,不论其中的单元是否在同行、同列,表中任何一组单元都能用鼠标拖动到其他位置,单元组间可以建立任何复杂的算法,所以处理中国式的复杂表格例如表中套表最为简单。运行状态下,仍然允许编辑指定文字单元。 47、可以开发对话盒、子窗口、菜单。这样就可以很快地修改您的界面。 48、允许扩充功能和混合编程。不仅您的程序可以操控VisualGraph的一切技术,而且VisualGraph的脚本可以调用执行您的任何程序、函数。 49、提供图形的全部COM接口,在自己程序中象访问对象类一样方便地访问整个系统提供的一切技术。 50、在集成开发环境中还设有脚本调试器,设断点窗口、命令行窗口,变量浏览器等,信息十分丰富。
解决方案
解决方案二:
看不明白,还是顶下