西 北 工 业 大 学 研 究 生 学 位 论 文 (专业学位研究生) 题 目:石油图形平台基础软件的研 究与开发 英文题目:Study and Development of Basic Software in Petroleum Graphic Platform 作 者: 徐景周 领 域: 软件工程 指导教师: 吴广茂 日 期: 二零零八年四月 西北工业大学硕士学位论文 摘要 摘要 石油图形平台作为一个基础软件平台,对于加速我国石油勘探开发计算技术的发展和推广,形成技术成果的有效积累,以及石油核心技术的创新都有着极其重要的价值。 本文的研究目的是为石油勘探开发技术的发展和集成提供一个规范化、一体化的基础软件平台,解决国内缺乏统一的发展规划和标准化开发平台问题,满足石油勘探开发技术的研究与形成具有竞争力的软件产品,对促进我国石油勘探开发软件产业的发展具有较大的现实意义。 本文结合石油行业的多种图形编绘规范和业务功能扩展能力,运用框架设计原则,从图形平台基础技术部分和特定应用部分入手,提出了石油行业中图形平台协同框架的设计思想。重点从软件架构、软件复用、面向对象技术的角度研究了石油行业图形数据的可视化问题。设计并实现了灵活可复用的图形基础组件库,基于这些组件库开发了多种图形模块。在图形模块和基础组件库开发的基础上,经过功能组合和划分,可以将一组相关联的图形模块进行组合,形成具有特定应用领域,面向特定用户对象,功能关联的石油勘探开发专业应用软件。在它们之间的数据和成果可以交换和共享,从而实现一体化应用的思想。 目前,已在大庆油田的多个项目中得到应用,取得了良好的效果和经济效益。 关键词: 图形平台,框架,面向对象,设计模式,复用 I 西北工业大学硕士学位论文 摘要 Abstract As a basic software platform, the petroleum graphics platform is very valuable for acceleration of the petroleum exploration calculation technology development, for the available accumulate of the technology production and for the creation of petroleum core technology. The research target of this thesis is that this thesis can give a standardization and integrative basic software platform and solve the problem of the lack of the unite development plan and the standardization development platform. This thesis can also satisfy the research of the petroleum exploration technology and make a competitive product. It has a great real meaning to the acceleration of the petroleum exploration software industry development in our country. Combining with many petroleum industry graphics criterions and the ability of operation function expansion, using the design principle of software framework, this thesis proposes a design idea of graphics platform cooperation framework in the petroleum industry from basic technology part and special application part of the graphics platform. The thesis researches on visual problem of graphic data in the petroleum industry emphatically from the software framework, the software reuse and the object oriented technology. It designed and established flexible reuse graphic basic component library and also developed many graphic modules based on these library. Based on the graphic modules and component library development, you can combine a group of related graphic modules through function combination and division and carry out the petroleum explosion professional application software which is special application domain, object oriented and functional related. Among these software, you can also exchange and share the data and production to realize the incorporate application idea. Now, the platform has been used in many projects at Daqing Oil Field and got good effect and economic benefit. Keywords: Graphic Platform, Framework, Object Oriented, Design Patterns, ReuseII 西北工业大学硕士学位论文 目录 目录 摘要 ................................................................................................................................................... I 目录 ................................................................................................................................................... I 第一章 绪论 .................................................................................................................................... 1 1.1 背景 ................................................................................................................................... 1 1.2 研究现状 ........................................................................................................................... 1 1.3 研究目的和意义................................................................................................................ 2 1.4 本文工作 ........................................................................................................................... 2 1.5 论文结构 ........................................................................................................................... 2 第二章 图形平台框架分析 ............................................................................................................. 4 2.1 概念定义 ........................................................................................................................... 4 2.2 需求分析 ........................................................................................................................... 6 2.2.1 需求归纳................................................................................................................. 6 2.2.2 应用方案................................................................................................................. 7 2.3 层次体系结构与框架分析 ................................................................................................ 8 2.3.1 体系结构和框架 ..................................................................................................... 8 2.3.2 行为一致性 ........................................................................................................... 11 2.3.3 数据差异性 ........................................................................................................... 11 2.3.4 协同框架............................................................................................................... 11 2.3.5 其它方面的考虑 ................................................................................................... 12 2.4 框架构成 ......................................................................................................................... 13 2.4.1 平台分层............................................................................................................... 13 2.4.2 图形基础绘制技术 ............................................................................................... 14 2.4.3 图形应用规范 ....................................................................................................... 15 2.4.4 图形模块............................................................................................................... 16 2.4.5 数字成图............................................................................................................... 18 2.4.6 图形编辑系统 ....................................................................................................... 19 2.4.7 图形控件............................................................................................................... 20 2.5 小结 ................................................................................................................................. 20 第三章 图形平台基础部分设计 ................................................................................................... 21 3.1 设计原则 ......................................................................................................................... 21 I 西北工业大学硕士学位论文 目录 3.2 图形平台开发框架 .......................................................................................................... 21 3.2.1 层间关系............................................................................................................... 21 3.2.2 图形基础............................................................................................................... 22 3.2.3 基础绘制技术 ....................................................................................................... 22 3.2.4 图形应用规范 ....................................................................................................... 27 3.2.5 通用图形模块 ....................................................................................................... 39 3.2.6 专用图形模块 ....................................................................................................... 40 3.3 小结 ................................................................................................................................. 40 第四章 图形平台基础部分实现及应用 ....................................................................................... 42 4.1 开发平台 ......................................................................................................................... 42 4.2 关键技术 ......................................................................................................................... 42 4.2.1 点选中操作 ........................................................................................................... 42 4.2.2 样式应用............................................................................................................... 42 4.2.3 坐标系统............................................................................................................... 44 4.2.4 曲线算法............................................................................................................... 47 4.3 系统发布及应用.............................................................................................................. 49 4.3.1 符号库................................................................................................................... 50 4.3.2 线形库................................................................................................................... 51 4.3.3 图形规范............................................................................................................... 52 4.3.4 图形模块............................................................................................................... 53 4.3.5 综合应用............................................................................................................... 55 4.4 小结 ................................................................................................................................. 56 第五章 结束语 .............................................................................................................................. 57 致谢 ................................................................................................................................................ 58 参考文献 ........................................................................................................................................ 58 II 西北工业大学硕士学位论文 绪论 第一章 绪论 1.1 背景 石油行业因其行业的特殊性,及其行业管理的深化和提升,存在着不同于其它行业的特征。石油信息领域的特点是,数据量巨大,数据类型复杂,数据表现形式多样,不同勘探时期,不同勘探阶段,所涉及的图形不尽相同;既使是同一类图形,信息精确度和准确性不相同,其表现形式也不相同,这就要求有各种标准来支持不同数据类型的信息管理解决方案。中国石化每年花费上亿元资金引进国外石油勘探开发应用软件,说明了中国石化石油勘探开发对于应用软件具有迫切、强劲和持续的需求。 同时,侏罗纪软件公司为了配合国内油田数字化建设,也需要开发一套适合于公司目前及未来图形产品和相关项目所需一体化解决方案,为油田用户提供更准确、快捷的信息服务。 1.2 研究现状 目前,成熟的图形平台种类很多。其中针对GIS平台方面主要包括三类:集成式GIS、模块式GIS和组件式GIS[1]。集成式GIS指集合各种功能的大型GIS软件包。ESRI公司的ArcInfo,Genasys公司的GenaMap等都是集成式的GIS开发工具。集成式GIS优点是各项功能已形成独立完整系统,缺点是系统复杂、庞大、成本较高,难于与其他应用系统集成。模块式GIS是按功能划分成系统模块,运行于统一的平台上。Intergraph公司的MGE是一个有代表性的模块化GIS系统。模块化GIS具有较强的工程针对性,便于开发和应用。组件式GIS是近年来发展起来的,代表GIS系统的发展潮流,最主要的组件GIS大多采用Microsoft的COM技术。如InterGraph的GeoMedia,ESRI的MapObject,MapInfo的MapX,中地公司的MapGIS[2]等。虽然各种图形平台种类繁多,但目前还没有一个是针对石油行业量身定制的图形平台,所以或多或少存在以下缺陷: 1) 可扩展性差,一些系统专业开发工具虽然也提供了一些二次开发的接口语言[3],但对石油行业复杂的数据类型和表现形式来说,如断层、尖灭、油水连接等,难以实现,缺少灵活性。 2) 描述的符号、柱子(也称“道”)等种类不全或样式太简单,远远达不到国内油田的复杂要求。 3) 投资大,实施周期长,系统环境要求较高,而且后期的数据维护和系统升级工作量巨大,需要专业技术人员现场实施,普通用户无法进行维护。 1 西北工业大学硕士学位论文 绪论 1.3 研究目的和意义 缺乏一体化软件平台制约了我国石油勘探开发软件的发展和创新。本课题的研究,将以二次开发的类库/控件及开发手册形式提供面向第三方软件公司开发人员使用的基础平台接口,向用户提供了编制各种地质图形的手段及多种地质应用软件的集成方法;同时,公司内部也在基础平台之上构建满足自己业务需求的产品与项目,从而达到提高经济效益的目的。 石油图形平台的研究与开发成果的利用,对降低开发费用、缩短开发周期,加强质量控制、加快数据查找、共享数据资源、迅速掌握油田生产经营动态信息、提高决策管理水平,促进油田信息化建设、实现油田资源共享等方面具有较大的现实意义。 1.4 本文工作 本文从实际项目需求出发,系统地对石油图形平台的需求及应用进行了分析和研究,针对中石油地质编图规范[4]、录井资料整理规范,国内具有代表性油田的各种图件编绘规范[5-10], 重点从软件架构、软件复用、面向对象技术的设计角度研究了图形平台协同性框架的设计。主要工作如下: 1) 通过研究平面图、剖面图、井筒图的组成单元,确定了软件系统中的图形模块部分的类型及组成。 2) 研究分析了实际应用中的各类图形,把图形按逻辑层次划分为图件、图层、图元;按数据类型划分模板数据、内容数据。采用树型结构的组织形式来管理和操作图元。 3) 从软件的可视操作角度,提出 “图件 = 模板 + 数据”的设计思想,使图形和数据分离,成果图可以交流共享。 4) 应用UML、设计模式、面向对象技术进行系统设计。设计了一个支持变化的、期望能获得最大限度复用的图形平台框架。 5) 设计并实现了以平台基础技术部分为核心的图形平台,上层在基础技术部分之上定制系统,各层独立,上层之依赖于下层模块。 6) 石油图形平台的发布与应用。 1.5 论文结构 各章内容安排如下: 第一章:绪论 介绍研究背景,本文工作及论文结构。 第二章:图形平台框架整体分析 2 西北工业大学硕士学位论文 绪论 对满足石油图形平台框架整体分析。 第三章:图形平台基础部分设计 在框架整体分析的基础上,对图形平台基础技术部分进行设计。 第四章:图形平台基础实现及应用 以框架设计为指导,实现图形平台基础技术部分及其应用。 第五章:结束语 总结已取得的成果,并指出进一步的改进和研究方向。3 西北工业大学硕士学位论文 图形平台框架分析 第二章 图形平台框架分析 2.1 概念定义 下面对分析/设计中涉及到的一些专业概念词语加以说明: 图件(图) 管理图层的容器。它通过图层将图元按一定的规则组织在一起,表达某种含义。通过图层的组合(即层集合)、图元组合(叠加)和特殊图元集合,形成图件。就图件本身来看有许多类型,但归纳起来可分为图形和图像两类[11]。 图层 图件的层次[12],是用户按照一定的需要或标准把某些相关的物体组合在一起。是管理图元的容器。 一幅完整的图,通常由若干个图层来构成。我们可以把图层想像成是一张一张叠起来的透明胶片,每张透明胶片上都有不同的画面,改变图层的顺序和属性就会改变图的显示效果。每个图层是相对独立的。 引入图层概念,是为了便于编辑和管理图元,或为了达到某些特殊的目的(比如隐藏某一图层)。图形分层有利于资源的复用和共享,提高检索和显示速度,提高图形管理和图形设计的效率。 图元 图形系统的基本元素,可进一步细分为基础图元和专业图元。 基础图元由点、线、面、文字等基本形状组成,专业图元由基础图元组合而成,表达一定的专业含义(如柱子、责任表、图例)。 图元类 对图元的分类,代表一类图元。 图例 对图中的符号、线型、填充外观样式的规定和含义的注释。 属性 用来描述图元对象的表现样式。 符号 可以重复使用的可绘制标识,一般具有稳定性和一定程度的标准性。 符号元素 符号是由点、线、面、圆(椭圆)等组合而成的,组成符号的点、线、面、圆(椭圆)等我们称之为符号元素。 符号帧 有些需求可能使符号在不同的状态下有不同的表现,每种表现称之为帧。 4 西北工业大学硕士学位论文 图形平台框架分析 符号库 从用户的角度看是指符号的集合,从程序的角度看符号库是用来管理符号的程序。 符号绘制参数 指符号的坐标点,大小,单一颜色(有的话),旋转角度等参数。 子符号 符号里可以包含子符号,子符号的定义、性质完全和符号是相同的,定义子符号的目的是一个符号的不同部份(子符号)可以有不同的表现。 线型 可以重复使用的曲线表现形式,一般具有稳定性和一定程度的标准性。 修饰 线型是由修饰组合叠加而成,一般而言,修饰是比较简单的曲线表现形式,修饰的叠加形成复杂的曲线表现,即线型。修饰对用户而言是不能单独使用的,因为它是被包含在线型里的。 线型库 从用户的角度看是指线型的集合,从程序的角度看线型库是用来管理线形的程序。 对比图 把两口井同一时代地层(或沉积特征相似)的井段建立连接,并统一命名这就是层段的连接。用于盆地范围内的地层划分与对比研究,其主要目的是建立地层系统,确定生,储,盖组合关系,为寻找地质构造,预测油气勘探的有利地区提供依据。属于剖面图类。 油藏剖面图 主要反映多井间之间的油、气、水层对应连接的关系图,它比较真实地反映了地下油、气、水层连接的情况。属于剖面图类。 连通图 表示注水井和多个油井间的连通关系,它比较真实地反映了采油和注水关系。属于剖面图类。 等值线图 在某区域内,由每口井的某一地层的数据值得到的离散点形成等值线图。离散点的形式是这样的:(井x坐标,井y坐标,数据值value)。然后由等值线绘图模块将离散点网格化绘制等值线。属于平面图类。 综合柱状图 地层综合柱状图反映了在时间上实习区地层和岩石的发育情况,揭示出地壳运动的性质和类型以及演变。它通常需要结合实习区及外围的地质资料,在地层实测剖面的基础上绘制出来的。属于井筒图类。 断层 地壳运动产生的强大压力或张力,超过了岩层所能承受的“强度”,岩层发生断裂,并5 西北工业大学硕士学位论文 图形平台框架分析 沿断裂面有明显的错动、位移,形成断层。 尖灭 尖灭是指岩层厚度逐渐变薄,以至消失,其中 油(气)层尖灭是指油(气)层变薄直至为零,或因岩性、物性而不含油气可统称为油(气)层尖灭。 2.2 需求分析 2.2.1 需求归纳 图形平台的业务需求,是以整合油田勘探领域的生产、管理和研究的需求为基本出发点,以提供勘探开发业务信息化一揽子解决方案为目标,按照知识-信息-数据(K-I-D)的不同层次,通过专业库、数据中心和项目库的建设,分别解决油田勘探开发数据的存储和管理问题,信息的应用和交换问题,知识的可视化和辅助决策问题。 从广义来说,一个完整的图形平台应该具有:图形标准、图件编制、数字制图、图形应用、资源管理五个部分。它们之间相互关系如下: 1) 图形标准:标准化是基础工作,更是现代企业核心竞争力所在。通过标准化技术支持,为油田数据库基础建设和信息化应用建设提供统一、规范、通用的底层平台,保证信息系统之间的数据兼容性,消除信息孤岛,从而实现油田数据资产的价值最大化。它为数字成图和图件编制提供标准。包括图式、符号库、线型库。 R12:为模板制作提供专业制图标准,形式为:标准规范、基础模板。 R13:为图件编制提供专业制图标准,形式为:标准规范、新建图件提供专业模板。 2) 数字成图:通过模板定义、数据获取、数据应用于模板的方式实现快速制图。 R23:数字成图的图件成果,可以使用图件编制系统进行编辑。 R24:模板和数据源定义成果,可以用资源管理系统保存管理。 R25:数字成图的结果可以作为GIS应用的底图;使用数据源可以为GIS系统提供动态要素加载的数据。 3) 图件编制:制作编辑通用的和专业的图件。 R34:图件中的图形数据可以作为图形库的数据交由资源管理系统分类存储;整个图件可以作为成果资料被资源管理系统管理。 R35:编制的图件可以作为GIS应用的底图使用。 4) 资源管理:模板和数据源、图形坐标、图件文件的管理(存储、分类、授权、发布)。 R42:为数字成图提供数据。 R43:为图件编辑提供坐标数据和成果图件(用于二次编辑)。 R45:为GIS应用提供底图、动态要素数据。 5) 图形应用:石油图形应用,GIS应用等。 6) 外部数据:数据的正确性、完整性和一致性,是决定油田勘探开发信息化项目能否成功6 西北工业大学硕士学位论文 图形平台框架分析 的重要依据。 R62:为数字成图提供数据。 上述关系,如图2-1所示。 图形平台 1图形 标准 R12 模版标准 R62 提供数据 R13 遵循 R23生成图件去编2数字 成图 R25 提供底图要素生成 R24 R43 资源入库 数字成图或成果图4资源 管理 3图件 编制 R35图件作为底R34 资源入库 R45 提供底图 要素生成 6外部 数据 R42 提供数据 5图形 应用 主要的业务流向 其他 应用 图2-1 平台业务 2.2.2 应用方案 基于以上平台业务的需求,图形平台最终(上层)应用方案由数据服务、业务服务和表示服务几部分组成。 1) 数据服务 数据服务由数据服务模块和各类Adapter组成。Adapter用于为不同形式和格式的数据媒体提供一个统一的数据访问接口。数据提供方式主要有二种:一种是使用用户现有的数据库,通过Adapter和数据主服务模块建立一个虚拟的三维数据体。这种形式主要应用于Web浏览,数字成图。另一种是我们提供一个数据库,用户导入各种必须的数据来建立地质模型。 2) 业务服务 图形数据的组织和管理,图形模块的绘制与处理以及数字成图的处理(模板+数据)。其中数字成图指模版和数据的装配,模版作为通用性的东西,内容只包括图元属性信息,不7 西北工业大学硕士学位论文 图形平台框架分析 包含数据(也可提供模版和数据的集合的单一文件,图件),各个图元是什么数据由该图元的数据源ID属性决定。 3) 表示服务 为达到共用和一致性要求,对图形显示和编辑操作抽象出统一规范。只要遵循这些规范,应用之间都可以进行协同操作。 平台应用方案的组织结构,如图2-2所示。 图2-2 平台应用方案 2.3 层次体系结构与框架分析 2.3.1 体系结构和框架 平台的概念不是一个简单的软件,或者一个功能专一的系统,而是一个可以为其他系统和软件提供各种图形接口和功能的技术环节的一个层的概念。 1) 层次体系结构 软件体系结构通常被称为架构,指可以预制和可重构的软件结构。 Garlan & Shaw模型的基本思想是: 软件体系结构 = {组件(component),连接件(connector),约束(constrain)}。 8 西北工业大学硕士学位论文 图形平台框架分析 其中组件可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示组件之间的相互作用。约束一般为对象连接时的规则,或指明组件连接的形式和条件。 层次式软件体系结构是把大型软件系统按照功能的扩展性,分成若干层。每一层为其上层服务,并作为下层客户。最内层为“内核”,完成最为基本的公用操作。向外各层逐渐进行功能扩展,满足不同系统规模的需求。 层次式软件体系结构的组织方式支持基于可增加抽象层的设计,便于增加新功能,使系统具有可扩展性。这样,允许把一个复杂系统按递增的步骤进行分解。而且,由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供了强大的支持。 2) 框架 框架亦可称为应用架构,框架的一般定义就是:在特定领域基于体系结构的可重用的设计,也可以认为框架是体系结构在特定领域下的应用[13]。 框架包括了一组的抽象概念。这些抽象概念来源于问题领域。框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。这是框架的具体工作。框架在抽象概念上进行工作,定义抽象概念之间的协作方式。框架和普通软件的区别就在于,用户通过扩展框架来重用该框架。这些扩展点的设计称为框架设计的核心。 ① 框架主要技术包括通用点、扩展点和设计模式。其中通用点是业务应用中反复出现的通用主体,存在于特定领域和跨领域框架层中,表现形式为具体类、可执行的形式。扩展点是框架中频繁变化的部分,由应用层实现,表现形式为设计成抽象方法或一组接口。设计模式[14]是在特定场景下重复发生问题的解决方案,这样,你就能一次又一次的使用该方案而不必做重复劳动。 ② 框架主要方法包括黑盒框架、白盒框架和灰盒框架。如表2-1所示。 9 西北工业大学硕士学位论文 图形平台框架分析 表2-1 框架方法 方法 白盒框架 框架层组成形式 抽象类 应用层使用方式 白盒框架是由抽象类组成的框架,开发者使用白盒框架时,要继承框架中的抽象类来建立一个具体类,白盒框架使用继承法支持扩展点。它的缺点是缺乏灵活性。整个处理流程已经固定了。它通常要求开发者了解很多框架组件的实现细节。 黑盒框架 具体类 黑盒框架由直接可用的具体类组成,继承已存在的框架组件来达到客户化的目的,通过组合很多组件来达到预期目的。黑盒框架可能包含很多通用点,它借助组合法来支持扩展点。缺点是因为它是由隐藏了内部实现的组件组成,开发者必须熟悉更多组件以及它们的使用。 灰盒框架 抽象类、具体类 选择继承法、组合法组合的时候,应当牢记权衡每种方法的性能、维护成本和易用性。从性能角度讲,组合法往往比继承法慢。 图形平台框架采用通用点/扩展点等技术,基于灰盒框架分离出跨领域的通用点部分和特定领域的扩展点部分,上层应用将通过组合它们来满足不同的业务需求。 平台框架的业务分层,如图2-3所示。 高 业务应用 需掌握业务知识的程度应用框架 特定领域框架层 跨领域框架层 基础框架层(.net) 操作系统层(Windows) 图2-3 框架的业务分层 10 对特定应用领域是通用的 不同业务领域共享的共同主题 低 西北工业大学硕士学位论文 图形平台框架分析 图形平台的协同框架就是为彰显行为的一致性,屏蔽数据的差异性而设计的,它使不同类型的图件可以在相同的环境中一致性地操作,在此基础上确立图形和数据分离[15]的协同框架。 2.3.2 行为一致性 图形的一致性一般可以从三方面归纳:图形属性、图形操作和图形表现形式。如果将图形细分为图元,所有的图元都当作对象看待的话,它们通常由共有属性和专业属性组成。共有属性一般包括几何属性,如圆形还是方形;显示属性,如实线还是虚线显示,专业属性一般根据具体图元而定,如断层特有属性等。图形操作一般分为创建,删除,通过修改属性来改变形状和显示风格,可以在图件上以指点或拉框等方式进行图形选中,旋转等。图形表现形式通常是由简单图元的复合表现出来的,如表现为线形还是直方图。 2.3.3 数据差异性 图件的不同表现在于描述图件的数据不一样,图形的差异性主要是由于图中的元素(图元)所代表的现实世界中的对象不同所造成的。通常由普通图元和专业图元组成。 普通图元是制图的概念,具有几何属性和显示属性的元素,如红色的小点,绿色的宽线。 专业图元是专业的概念,真实世界现象的抽象,具有几何属性和特征的专业属性,如井位、层段。 2.3.4 协同框架 通过对一致性的归纳,我们可以针对图形应用制定出图形应用规范,作为协议,妥善协调用户界面和图形模块之间的运作,使不同的图形在应用时有着共同的行为方式。 在协同框架中,把图形系统分为三个部分:图形应用规范、图形模块和图形应用产品。图形应用规范是一种协议,他规范了图形的应用方式,在所有的图形系统中,都遵循同一个规范。图形模块是针对专业图形而开发的特定的程序组件,它或多或少地实现了图形应用规范,有一种专业图形就有一个图形模块。图形应用产品是针对某种图形特定应用(如编制图),根据应用流程而搭建的用户界面以及其他方面的业务处理环节,用户透过此界面,交互地操作图形模块,它实际上是一种基于图形应用规范接口编程实现的可执行程序,对于不同的应用可以有不同的图形应用产品。 协同框架如图2-4所示。 11 西北工业大学硕士学位论文 图形平台框架分析 通用图 形编制 通用 GIS 项目 监控 图形应用产品 图形应用规范 通用图 形模块 等值图 形模块 统计图 形模块 柱状图 形模块 对比图 形模块 图形模块 图2-4 协同框架 通过使用此框架,可以获得如下好处: 1) 模型和用户界面的分离,由此使更广泛的模块复用[17]成为可能。 2) 在图形模块的设计编制构成中,不必考虑界面元素,只需完成规定的接口实现。 3) 应用系统不必考虑图形的内部结构、显示方式和操作方式,专心于专业方面的处理流程。 4) 相同的调用方式,不必为不同的图形进行特别的考虑。 2.3.5 其它方面的考虑 同时,我们必须考虑到,在大部分专业制图系统中,存在其他处理流程环节的程序组件不是我们自己开发的,我们在这些环节上缺少自主性,必须利用其他系统完成主要的专业数据处理工作量,这时,图形技术的应用只是实现专业数据处理后的成果。根据系统自主开发的程度和对图形技术应用程度要求不同,分为三种情况来灵活处理协同框架的各组成部分。 第一种情况。专业图形涉及更多的专业技术,有些不是公司组织开发的,这样就需要在制图过程中有使用其他软件系统的环节,因此,我们只需要专注于专业软件的输出成果如何转换到我们的通用格式即可。 第二种情况。有些项目需要快速实现图形显示功能,对于编辑等交互操作并无刻意要求,出图只作为专业系统的最后一个功能,因此不需要对其他操作规范进行编程实现,只需要实现图形格式的转换规范其可。 第三种情况。对于一些我公司有能力开发的专业制图系统,我们需要从核心开始,按照应用规范编制,从而实现在通用图形编辑系统可以操控的图形模块。这样是一种理想的状况,可能会需要比较大的投入才能实现,不过,可以通过分步实现部分规范,达到可以12 西北工业大学硕士学位论文 图形平台框架分析 较快投入适应的要求。 对于第一种和第二种情况,通过交换图形文件(或数据对象)的方式显示图形。对于第三种情况,可以更好地控制图形,通过相同的方式,完全地控制图形和数据。如图2-5所示。 采集处理 ② 其他公司软件 图形转换 模块 简单编图 ① 图形 交换标准 通用编辑系统 ③ 常规图 图形模块 柱状图 图形模块 对比图 图形模块 剖面图 图形模块 图2-5 图形交换 2.4 框架构成 2.4.1 平台分层 首先,框架的是为了企业的业务发展和战略规划而服务的,它服从于企业的愿景(vision);其次,框架最重要的目标是提高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度,控制进度等方面。最后,框架实现这些目标的方式是进行有效的知识积累。 应用是软件企业的核心,是竞争力的关键所在,因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。 13 西北工业大学硕士学位论文 图形平台框架分析 采用层次式划分,可将完整的图形平台分为二大部分:图形基础技术和图形应用产品。图形基础技术层为图形应用产品层提供了基础和保证。每一层又由多个小层组成,如图2-6所示。 1) 图形基础技术:这一部分包括图形的组成、组织、绘制、操作、交换、运算等。以组件类库和控件等为主要形式提供。 2) 图形应用产品:在图形基础技术部分的基础上,针对特定业务需求开发的产品或项目中的图形应用。包括各种专业图件的编制、数字成图、资源管理、GIS应用等。以可执行程序安装包和项目方案的形式提供。 CA5数字成图系统 通用 系统 CA2专业图编辑系统 等值CA6图形应用项目 GIS 项目定 制系统 图生成 柱状图生成 其他专业图 应用项目 专业数据可视化项目 其他图形项目 CA1通用图形 编辑系统 CT3:图形应用规范 CT2:图形模块 等值图模块 柱状图模块 对比图模块 通用图形模块 CA3通用 图形控件 CA4专业控件 剖面图模块 其他专业图模块 CT1:图形绘制技术 基础技术层次 应用产品层次 图2-6 图形平台框架 2.4.2 图形基础绘制技术 所有图形系统最终绘制方法的底层实现。也就是说,对图形设备绘图指令的具体调用都是在这里发生的。它以相同的调用方式实现符号、线型、充填、文字的绘制输出,从而减少针对不同图形格式输出时编程的工作量。从库中读取指定的符号或线形,进行缓存后以一致的方式绘制输出。 对基础绘制技术的设计要求主要包括:符号和线型可以通过显式的描述进行定义;绘制方法的调用规范以接口方式体现;对于不同绘图设备的绘图指令的调用,应该发生在规14 西北工业大学硕士学位论文 图形平台框架分析 范实现的模块内部(这样才能做到,修改一处不影响其余的要求,一致性地改变输出格式);符号库和线形库的设计要考虑符号、线型缓存的要求,缓存的符号线型是在具体图件中使用到的符号线型,这些缓存着的符号线型可以最终嵌入到图件文档中,使文档在脱离两库存在的情况下还可以正常实现(文档的便携性);图形输出的缓存考虑,主要是为了加快显示速度和改善视觉感受。如图2-7所示。 符号库 索引 缓存 符号库管理 文件结构 符号制作 符号分类 线型库管理 文件结构 线型制作 线型分类 符号 标准绘制 符号绘制 线型绘制 充填绘制 线型 线型库 索引 缓存 图2-7 符号库/线形库结构 2.4.3 图形应用规范 主要是针对图形应用中遇到的应用(使用)方式进行规范化的归纳总结,它既是一个规范性文档性质的研究成果,也是一个基础的抽象图形系统模块。指导约束具体图形模块的实现方式,使图形模块的编制工作集中于规范和业务特征的实现,而不是用户界面的编程。 规范通常由数据模型的规范(包括数据组织、存储、数据交换)、显示绘制的规范、操作控制的规范和基础图形交换格式定义几部分组成。 这一部分定义了应用相关的大部分接口规范,是图形平台的重要组成部分,也是图形平台的基础,是区别于以往的公司图形技术的重要特征。所有的图形模块如果实现了这些特征,就可以在依照此规范实现的图形应用中插入使用,从而实现公司所有的图形产品和应用都具有插件式应用的特征。 应用规范的制订方法是从图形显示、图形编辑、数字成图、图形交换、GIS技术等应用方面进行归纳,抽象出具有一般性的规律。 15 西北工业大学硕士学位论文 图形平台框架分析 1) 图形应用规范以接口方式体现; 2) 图形交换格式是通过XML文档格式在图形平台不同数据格式之间进行转换。其中XML格式采用XML Schema[19]方式设计。按层次分为基本类型定义、几何、样式、坐标系、基础图元、符号库线型库五个基础部分,以及扩展应用部分,采用GML3.1[20]的子集 + 针对自身绘图目的进行扩充(样式、图件结构等)结构。 图形应用规范,如图2-8所示。 图形编辑系统 数字成图 图形应用规范 图形模块 图形模块 图形应用规范 图形控件 图形模块 图形应用规范 其他 图形 产品 图形模块 绘制技术 图形模块 项目 图形 应用 图形模块 图形模块 图形模块 特殊图形系统 特殊特图形系统(不通过图形规范) 特殊特图形系统(不通过图形规范) (不通过图形规范) 图2-8 图形应用规范 2.4.4 图形模块 针对特定的图件类型,不同程度地实现了图形应用规范的程序组件。分为通用图形模块和专业图形模块,通用图形模块是最基本的图形模块,其他的图形模块至少都可以将内16 西北工业大学硕士学位论文 图形平台框架分析 部数据转换成通用图形数据格式,在通用图形模块中使用(只具有图形含义,失去数据的专业含义)。 不同的图件类型需要实现不同的图形模块。如通用图形模块、单井柱状图模块、多井对比图模块、多井栅状图模块、等值图模块、统计图模块等。 1) 每个图形模块针对特定的专业制图需求,只要求实现符合特定专业出图目的的元素特征即可。 2) 通过数据图形关联机制,实现由数据到图形、由图形到数据的双向影响。 3) 通用图形模块是基础图形模块,其他图形模块的开发可以不同形式复用通用图形模块的特性。 4) 通用图形模块。基础图形学意义上的图件,由图、图层、图元按层次组织,图层的划分和组合体现了专业图类的基本构成框架,图层的缺省显示风格属性代表了各种专业图形要素的制图标准(制图标准一般规范了两个方面的内容:图件中的要素种类、每种要素的表现形式)。图元的种类,只考虑最简单常用的基本图元类型,复杂的图形要素可以通过简单的图元复合而成,基本图元[21]包括:符号点、线、面、文字、形状(圆,矩形等)、组合。嵌入图元实现其他种类的图件作为图元嵌入到图件中的功能。 5) 其他的模块,根据具体的情况,可以实现不同的规范,但是应该有一个最小的集合,这个最低的要求是要实现内部数据到通用图形数据的交换规范。 图形模块间的交换,如图2-9所示。 应用规范机制 应用规范机制 应用规范机制 等值图模块 交换机制 柱状图模块 交换机制 其他专业图模块 交换机制 图形交换数据 交换机制 CT21:通用图形模块 应用规范机制 图2-9 图形模块之间的交换 17 西北工业大学硕士学位论文 图形平台框架分析 2.4.5 数字成图 将数据通过自动化手段制成符合业务标准的图件的过程。采用图件 = 模板 + 数据的思想,快速生成图件。模版用来存储图形布局,图元属性等图形信息,用来表示同一类型和显示风格的图,配合不同的数据显示出一张完整的图。通过在预先定义的图件模板上绑定提取预先定义数据来源的图形数据,快速的生成一幅规范的图件。对于最终用户来讲,数字成图就是一键式成图。 主要用于以下目的:“草图素材”目的,根据制图标准快速生成标准化的草图,可供图形编辑系统进一步修饰编辑;“作战室”目的,为作战监控系统提供实时反映目标变化的图件内容;“应用底图”目的,为其他应用(GIS)提供地理、地质底图。 围绕标准、快速的目标,而必须的技术方案和系统组成。包括:模板制作;数据获取,图形数据可以来源于专用的图形数据库,也可以是客户的业务数据库;资源管理(图形、图件、模版)。 1) 模板制作可以纳入到图形编辑系统中实现。 2) 数据源的定义,要考虑不同数据来源,包括数据的存储方式。 3) 图形数据获取方式的一致性,采用图形数据服务器的方式,从而屏蔽不同的数据存储系统、位置、存取方式的方面的差异。通过相同形式的图形数据请求,返回相同格式的图形数据。 4) 多个图形数据服务器的整合处理。 数字成图方案,如图2-10所示。 18 西北工业大学硕士学位论文 图形平台框架分析 图式模版 数据源定义 模版 制作 管理 1、获得图式模版 数字成图 2、请求特定数据源的数据 3、根据连接,从不同数据库中获得数据。 专用图形库 图形库 管理 4、返回图形数据 交换数据格式 图形数据服务器 通用图形库 通用图形库 专业数据库 专业数据库 图2-10 数字成图 2.4.6 图形编辑系统 通过人机交互方式,完成图件新建、修改编辑、打开保存以及图形模块提供的其他图形应用功能。主要是针对图形应用规范的图件编辑部分进行用户界面方面的支持。主要包括:图件文档结构的展示、编辑;图形元素的属性编辑(坐标属性、显示属性、信息属性);图形的显示;将命令和用户事件传递到图形模块;图形模块的触发的事件的处理。 图形编辑系统分为两类:通用图形编辑系统和专用图形编辑系统。通用图形编辑系统是按照图形操作规范实现的侧重于图件的制作和编辑的软件系统,任何按照图形操作规范实现的图形模块都可以实现即插即用的插件效果。图形模块实现了多少规范,系统就可以使用多少图形应用功能。专用图形编辑系统是没有按照规范编制的特定图形编辑制作系统。一些特殊的专业图件,需要有特殊的编辑操作,如果这些特殊的编辑操作没有被图形应用规范考虑包括进来,就需要编制特定的应用程序来操控这些图件。主要负责用户界面布局和用户事件的传递。 通用图形编辑系统,是对图形应用规范中编辑操作相关的部分进行接口编程。对应用规范中指定的各种协议提供支持。图形模块的加载是在运行时完成的(不是编译时)。图形模块实现的规范协议将得到支持,实现的协议将不影响系统的运行。系统的主要流程是:启动图形模块→根据应用规范的协议进行协商→开始用户操作。协商的目的是建立相应的界19 西北工业大学硕士学位论文 图形平台框架分析 面元素,映射事件处理方法。 2.4.7 图形控件 为适合项目应用而开发的平台组件。主要功能不在于图形的编辑,而在于目标的选择、信息显示和应用触发等方面的应用。 2.5 小结 本章通过对石油图形平台所需满足的整体框架进行分析,包括基础技术部分和应用部分各组成模块,为下一步平台设计做好准备工作。 20 西北工业大学硕士学位论文 图形平台基础部分设计 第三章 图形平台基础部分设计 3.1 设计原则 设计先行,技术跟进。必循严格遵循逐层推进的 设计→审核→实施→检查 流程开展项目的技术活动。 采用松耦合方式,组件化、可扩展(插件技术)和基于接口的设计编程。 自底向上逐层设计,上层框架控制下层的独立开发模块,可分离的模块成果。 通过规范协议协调子系统之间的交互,通过机制指导功能实现的方法调用次序。规范是原则,机制是实现技巧。 3.2 图形平台开发框架 3.2.1 层间关系 为了更好的看清图形平台各层之间的关系,便于实现。我们从前一章中的平台框架(图2-6),进一步将图形平台细分为下面几部分:图性基础部分、绘制技术部分、图形应用规范部分、各种图形模块部分(优先考虑通用图形模块)、通用图形编辑器、通用图形控件、数字成图部分(包括图形库和成果库)、图件库应用等。如图3-1所示。 图3-1 平台框架关系图 21 西北工业大学硕士学位论文 图形平台基础部分设计 其中每个部分相当于一个或一组代码工程,同样,这些部分从粗粒度角度看分为两部分:基础技术层和应用产品层。每一层又由其它小层组成,每一个部分都是建立在底层部分的基础之上的。 1) 基础技术层 以技术文档和供二次开发的类库及开发手册形式提供,不是面向最终业务客户的,而是面向软件开发人员的。软件开发人员可以在这些技术和模块的基础上构建自己的应用系统。这一层主要包括图形基础、基础绘制技术、图形应用规范和图形模块部分,是本文重点研究和开发的对象。 2) 应用产品层 以可执行程序安装包的形式提供,面向最终业务客户,最终用户可以在此系统上直接开展业务工作。包括图形应用、图形控件和图形编辑系统。 3.2.2 图形基础 基础技术部分的最底层,是其它各部分的基础,之上的各层都会用到它。该模块内部封装了几何[23]和曲线算法、地球投影和坐标转换、重新实现的点(CPointD)、尺寸(CSizeD)、矩形(CRectD)和矩阵(CMatrix3)[24]类,其中矩阵类用于对坐标进行线性变换,如平移,旋转,放大,镜像,切变等。此处要求算法效率要高,算法过程中不用或尽量少用临时的内存分配。 3.2.3 基础绘制技术 1) 符号库设计 实现符号的绘制、管理功能,使上层应用能方便地使用各种符号元素。 从用户角度来看,希望有更多的参数来控制符号的显示,如符号单一颜色,线宽,字体等参数,利用这些参数减少符号的数量同时增加灵活性;符号元素集合(作为一个整体,形成子符号)可以对符号的放大系数,旋转角度等参数作出不同的表现,共有三种情况:子符号的大小不受符号的放大系数或旋转角度影响;子符号受符号的放大系数或旋转角度影响;子符号受符号的放大系数或旋转角度影响,但要求元素不变形;一幅图件中同时使用多个符号库;图件要能将它所使用的符号数据内嵌到图件中,能作为选项脱离符号库显示和使用。 从程序角度来看,符号和线型可以通过显式的描述进行定义;符号绘制不同的油田可能有不同的绘制方式,设计时要考虑这种变化的需求,使之易于扩展和维护,可以定义一个绘制符号的接口,不同的绘制方式有不同的接口实现来达到这一目的;不同的应用程序可能有22 西北工业大学硕士学位论文 图形平台基础部分设计 不同的符号应用规则,例如一个符号大小不一样时表现形式不一样,可能只取其中的某一部份,放大到某一程度时,符号里的某元素(集合)大小不再变化,但间距会变化,这种需求可能使符号在不同的状态下有不同的表现,我们可以对同一个符号实现有多种表现,每种表现我们称之为帧,符号应用规则是在应用程序(用户程序)中实现的,帧的替换规则也是在应用程序中实现的,由符号库使用程序确定在什么情况下使用什么帧;符号的绘制在图形绘制技术中频繁使用,要求有较好的时间性能;符号库要提供对使用过的符号进行缓存(标记)的功能,以利于速度、存储等性能的改进,同时可以容易地得到图件中使用过的符号,用于在图件文档中嵌入这些符号。要注意的是,以挑选为目的的符号浏览,不应进入缓存。 ① 数据结构 符号及其元素的数据存储结构包含绘制时所需要的全部数据,主要有坐标数据:对符号而言,就是符号的中心坐标,缺省时是0,使用者自由设定使符号处于不同的位置,对符号元素(或子符号)而言,坐标数据是相对于符号中心的相对坐标,绘制时使用者无须更改;符号(CSymbol)[25]包含文本(SymText)、圆(椭圆,扇形)(SymArc)、曲线(SymCurve)和符号自身(子符号),还有符号帧(Frames)。 静态数据结构,如图3-2所示。 图3-2 符号结构 ② 类设计 符号库定义了符号绘制接口ISymbolDrawer和它的一个实现CSymbolDrawer,规范了符号绘制方法调用形式,其实现类可以实现各自的特殊绘制逻辑。绘制符号时,只绘制符号图元,而不再绘制符号图元中包含的帧。符号库管理类CSymbolLib,用于加载符号库文件或数据片断,具有符号缓存机制,由于加快符号获取速度,减少内存占用,获得使用过的符号。23 西北工业大学硕士学位论文 图形平台基础部分设计 符号类CSymbol,符号数据的内存表现形式,避免重复从XML数据中解析数据所带来的效率低下,它包括了符号帧和各种符号图元。各种符号图元(CText、CSector和CCurve)及其基类CSymbolElement。PickSymbol为浏览符号,选取指定的符号所用。如图3-3所示。 图3-3 符号库类图 采用Composite设计模式。引用Composite模式的意图为:将对象组合成树型结构以表示整体-部分的层次结构,Composite使得用户对单个对象和组合对象的使用具有一致性[26]。这里符号元素和符号在使用方面已经没有清晰的界限,符号是组合对象,符号元素是单个对象,符号和符号元素的使用具有一致性。 符号的绘制采用Strategy设计模式。引用Strategy模式的意图是:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的客户而变化[26]。在这里,定义不同的绘制算法,封装起来,当用户要求绘制算法改变时可以相互替换。 将来用户的需求变化可能要求相同的符号数据要有不同的绘制方法,就可以新增不同的具体绘制类来实现ISymbolDraw绘制接口。这里的绘制方法意指绘制策略,是指算法的不同。比如某个油田需求特别,要求符号里的文字全为红色的,其余(矩形、圆、曲线)不变。现有的符号数据结构无法实现这点,只能全部重新制作一套新的符号。但采用Strategy策略模式,将数据结构和绘制分离,只需针对这个油田写一个新的绘制类即可。 ③ 坐标变换 设符号内某点P的坐标为(x0,y0),符号的坐标数据以符号中心定位。符号库文件中某24 西北工业大学硕士学位论文 图形平台基础部分设计 符号的宽度为w0,高度为h0(页面坐标),则符号变形系数如参数3-1所示。 w0h0 (3-1) A. 按照指定的宽高绘制符号 设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-2所示。 x'x0ww0 (3-2) y'y0hh0以上是按照指定的宽高绘制符号的情况。但还有可能按指定的宽,以符号的缺省宽高比例绘制的情况,或者按指定的高,以符号的缺省宽高比例绘制的情况。 B. 按指定的宽w,以符号的缺省宽高比例绘制 设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-3所示。 x'x0ww0 (3-3) y'y0wh0y0ww0C. 按指定的高h,以符号的缺省宽高比例绘制 设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-4所示。 x'x0hw0x0hh0 (3-4) y'y0hh0关于长度的变换,都可以转化为坐标的变换。例如一个矩形,可以用两个坐标点来确定,也可以用一个左上点和长宽来确定,但这两种方式都是可以相互转换的。例如我们用GDI+绘制一个圆,当用全局变换在X方向和Y方面以不同的比例缩放时,圆就会变成椭圆。 2) 线形库设计 实现线型的绘制、管理功能,使上层应用能方便地使用各种线型。 线型修饰支持实线、虚线、点划线、自定义等初级线型,及颜色设定,可以设定与原始曲线的距离值(偏离值);修饰支持按指定的位置沿着曲线的路径绘制文本或符号;支持以上所有方式的复杂组合,但不能递归组合;线型的绘制不同的油田可能有不同的绘制方式,设计时要考虑这种变化的需求,使之易于扩展和维护,可以定义一个绘制线型的接口,不同的绘制方式有不同的接口实现来达到这一目的;线型的绘制在图形绘制技术中频繁使用,要求有较好的时间性能;图件要能将它所使用的线型数据内嵌到图件中,能作为选项脱离符号库显示和使用,线型库要提供对使用过的线型进行缓存(标记)的功能,以利于速度、存储等性能的改进,同时可以容易地得到图件中使用过的线型,用于在图件文档中嵌入这些线型。要注意的是,以挑选为目的的线型浏览,不应进入缓存。 25 西北工业大学硕士学位论文 图形平台基础部分设计 ① 数据结构 采用树形结构,但深度只允许一层。根节点是容器,子结点是修饰。线型是由笔修饰(CurveStylePen)、首尾(文本和符号)修饰(CurveStyleEnd)、符号修饰(CurveStyleSymbol)、文本修饰(CurveStyleText)组成。 静态数据结构,如图3-4所示。 图3-4 线形结构 线形由下面几种基本的修饰组成千变万化的复杂线型。笔修饰是用画笔可以绘制的修饰。包括实线、虚线、点划线、自定义等修饰,及颜色设定,可以设定与原始曲线的距离值(偏离值);符号修饰为沿着曲线的路径按指定的位置绘制符号,支持因绘制符号导致的曲线分割。文本修饰为沿着曲线的路径按指定的位置绘制文本,支持因绘制文本导致的曲线分割。首尾符号修饰是在曲线的头或尾处绘制符号。首尾文本修饰是在曲线的头或尾处绘制文本。 ② 类设计 线形库定义了绘制接口ICurveStyleDrawer和缺省的实现CCurveStyleDrawer,规范了线型绘制方法调用形式,其实现类可以实现各自的特殊绘制逻辑。线型库类CCurveStyleLib,用于加载线型库文件或数据片断,具有线型缓存机制。线型类CCurveStyle,线型对象数据的内存表现, 避免重复从XML数据中解析数据所带来的效率低下,包括子线型修饰。各种线型修饰图元和其基类CStyleBase,包括线型文本修饰类CStyleText和线型符号修饰类CStyleSymbol等。PickCurveStyle为浏览线形时,选取指定的线形所用。如图3-5所示。 26 西北工业大学硕士学位论文 图形平台基础部分设计 图3-5 线形库类图 线型的绘制采用Strategy设计模式。引用Strategy模式的意图是:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的客户而变化[26]。将来用户的需求变化可能要求相同的线型数据要有不同的绘制方法(绘制函数),就可以新增不同的具体绘制类来实现ICurveStyleDraw绘制接口。这里的绘制方法意指绘制策略,是指算法的不同。 3.2.4 图形应用规范 1) 应用关系 客户程序操作图形模块,图形模块响应操作在模块之间互相通迅,并将内部状态的变化通知客户程序。客户程序和图形模块之间的黑盒关系,如图3-6所示。 C:Client 客户程序 创建、设置对象 状态变化 I:一级交互界面 I:二级交互界面 图3-6应用关系 27 M:Module 图形模块 西北工业大学硕士学位论文 图形平台基础部分设计 图形应用规范就是指客户程序和图形模块以及为了实现客户程序和图形模块之间的交互、图形模块内组件间的交互。如表3-1所示。 表3-1 关系级别 图形规范 图形模块 客户程序使用图形模块的过程 交互方式 客户程序与图形模块之间 图形模块内组件之间 组件之间的相互作用是通过交互界面实现的,分为两级交互界面 ① 一级交互界面 客户程序与图形模块之间的交互包括:创建功能对象、设置功能对象、使用功能对象、处理功能对象的事件。客户程序发送指令并处理事件,图形模块处理指令并触发事件。这一级交互界面对于图形模块的实现是强制性的,即图形模块必须事先符合这些交互规范,才能在二次开发中以规范的开发编程方式使用这些模块。使用这些模块的项目开发人员,只需了解一级交互界面规定即可以开发常规的图形应用。 ② 二级交互界面 指图形模块内部的功能交互界面,它是图形模块实现的指导性(其中一部分是强制性的)规范,所以他的实现可以使用一级交互界面、也可以使用二级界面,还可以有条件地使用特定的对象类。 二级 一级 级别 2) 图形模块交互 图形模块的交互涉及到以下对象:文档数据对象、坐标系对象、绘制工具对象、操作工具对象、信息工具对象和命令解释器对象。这些对象之间的关系,如图3-7所示。 28 西北工业大学硕士学位论文 图形平台基础部分设计 使用… 坐标变换 坐标系 对象 使用… 坐标逆变换 A A使用B B 绘制机 对象 使用… 绘制自身 可视化操作工具 操作 文档数据 对象 获得信息 导入\\导出 操作 数据交换工具 对象 信息提供者 对象 命令解释工具 对象 图3-7 图形模块对象间交互 ① 文档数据对象 文档数据对象是指不同类型文档(图件)和其内部数据体所表示的现实数据对象。 为了客户程序协调文档对象和其他对象之间的协同关系,文档数据对象应该具有以下能力特征:文档特征、结构(数据项)特征、图形特征和信息(要素)特征。如图3-8所示。 文档特征 结构特征 文档数据对象 图形特征 信息特征 图3-8 文档数据对象 A. 结构(数据项)接口IDataItem 代表了数据的层次结构,通过它可以得到内部数据的组织结构, 获得、更新数据内容,进行数据交换,依据其他特征更新数据内容(实现图形数据的协同), 触发数据项变更事件(可以事件冒泡上返到上层对象处理),还可以得到图形特征接口和要素特征接口。类图如图3-9所示。 29 西北工业大学硕士学位论文 图形平台基础部分设计 图3-9 结构(数据项)特征 B. 图形接口IGraph 代表了现实对象可以具有可以以图形方式表现的特征。任何数据的图形表现都可以通过简单的图形元素(基础图元)的组合来表示,因此图形特征的接口主要实现数据到图形的转换,通过此接口可以获得表现此数据的各个基础图元。基础图元也应该具有图形特征(即基础图元也是从图形接口派生下来的)。图形的改变应该触发出事件,通知包容他的对象进行合适的处理(比如根据图形更新数据)。图形又包含两方面:样式和(坐标)数据。一个图形可能有多个样式表示它的不同方面的特征,比如面:有充填样式表示内部特征、有线型样式表示轮廓特征,有文字样式表示标注特征。基础图元的样式是固定的。对于复合图元(由基础图元组成),它的样式表现为其所有子图元的样式集合,处理方法可以转化为基础图元的来处理。类图所图3-10所示。 30 西北工业大学硕士学位论文 图形平台基础部分设计 图3-10 图形特征 图形样式类CStyle,分为点样式(CPointBaseStyle),面样式(CSurfaceStyle)由线样式(CCruveStyleEx)和填充样式(CFillStyle)组成,文本样式(CTextStyle)。其中点样式细分为3种,分别是固定标记点样式、字符点样式和符号库样式;线样式细分为2种,分别是点划线样式和线型库样式;填充样式细分为5种,分别是颜色填充、模式填充、渐变色填充、符号填充和图像填充。 图形样式类图,如图3-11所示。 31 西北工业大学硕士学位论文 图形平台基础部分设计 图3-11 图形样式 C. 文档接口IDocument 文档接口具有文档的行为方式,包括: 文档的文件操作、资源、元数据、获得数据项的根节点、作为顶层组件触发事件。打开或保存一幅图件的相关信息,包含图件的根节点、选中的图元、元数据、使用的符号库和线型库、坐标系信息等。类图如图3-12所示。 图3-12 文档特征 32 西北工业大学硕士学位论文 图形平台基础部分设计 D. 信息特征接口IFeature 代表了此对象具有要素的性质。可以得到要素代码、获得要素的相关信息、更新要素的相关信息。业务对象可以根据要素信息绘制专题图元。类图如图3-13所示。 图3-13 信息特征 ② 信息提供者对象 信息提供者主要负责相关信息的提取,实现数据源的连接。要素对象使用信息提供者获得信息 从文档内嵌的数据集(DataSet)中获得信息,是信息提供者的缺省方式。信息提供者对象的生命周期是由客户程序创建和维护的。类图如图3-14所示。 图3-14 信息提供者 ③ 可视化操作工具 完成图形的可视化操作。接管窗口消息,根据命令和状态,选择相应的工具[28],实现工具的调度。其中,工具管理器(IToolsMng)负责管理各个图形模块相关的工具、工具条和菜单条数据、坐标变换对象、承接窗口事件转发到当前工具、各工具的操作事件在此公开33 西北工业大学硕士学位论文 图形平台基础部分设计 为顶级事件“事件冒泡”。工具(ITool)是可视化操作的具体实施者。处理命令、鼠标事件、键盘事件等。它维护自身的操作状态、可以调用其它工具以实现工具的串行化和并行化。它负责提供关联菜单数据,并处理菜单命令。窗体事件处理(IWndHandler)处理窗体中各事件消息,通过工具管理器传给工具进行实际操作。 工具的串行操作是一个工具使用完之后,将控制交到下一个工具。可以设置当前工具到下一个工具,实现工具的串行操作。例如信息查询:第一个工具是信息查询工具,第二个工具是选择工具。在信息查询工具的start方法中:检查选中图元,如果没有选中图元,设置当前工具为选择工具,将选择工具的nextTool设为查询工具,结束方式为调用finish方法。现在控制交给了选择操作,在处理了mousedown、mousemove、mouseup消息之后,选中的图元在document的选中图元列表中,调用nexttool的finish方法。在信息查询工具的finish方法中,触发信息查询事件,客户端以适当的方式处理信息查询事件。如图3-15所示。 ToolMng 设置第一个工具 当前工具 第一个工具 第二个工具 tool1.Start() 设置第二个工具为当前工具 tool2.Start() 处理消息 处理消息 处理消息 操作结束 选择第一个工具为当前工具 或调用tool1.Finish() 操作结束 图3-15 工具串行操作 工具的并行操作是一个工具处理完一个消息之后,让下一个工具接着处理相同的消息。可以在一个工具的消息处理方法内部调用下一个工具的相同方法,实现工具的并发操作。如图3-16所示。 34 西北工业大学硕士学位论文 图形平台基础部分设计 ToolMng 设置第一个工具 当前工具 第一个工具 第n个工具 tool1.Start() 设置并发工具列表 tool2.Start() 处理消息 处理消息 处理消息 操作结束 图3-16 工具并行操作 撤消/重做机制为了撤销和重做一个命令,我们定义抽象操作类CCommand,在CCommand接口中有Execute和UnExecute操作。UnExecute是Execute的逆操作,它使用上一次Execute操作所保存的取消信息来消除Execute操作的影响。 定义一个命令历史记录CCmdHistory来保存执行过的命令,以支持任意层次的撤销和重做命令。CCmdHistory的类实例是个全局变量,使用Singleton模式设计。本机制采用Command模式设计思想,其意图为: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 可视化操作类结构,如图3-17所示。 35 西北工业大学硕士学位论文 图形平台基础部分设计 图3-17 操作工具 ④ 数据交换工具 数据交换工具在二进制图件和其它格式图件之间转换,一个特定的IExchanger实现只对某一特定的图件类型(图形模块)有效。 一个IExchanger实现类对某一特定的图件类型(图形模块)的其中一种文件格式进行数据交换。一个特定的IExchanger实现只对某一特定的图件类型(图形模块)有效。具体的交换方式可以通过点(CGmPointConverter)、线(CGmCurveConverter)和面方式(CGmSurfaceConverter)进行。类图如图3-18所示。 36 西北工业大学硕士学位论文 图形平台基础部分设计 图3-18 数据交换 ⑤ 绘图机对象 绘制机的主要功能,是将坐标数据按其指定的表现式样绘制到输出设备上(屏幕、打印机)。主要有两方面的责任:资源的配置和绘制方法。资源配置包括绘制句柄;符号绘制器,可能依文档的不同,使用不同文档中指定的符号库;线型绘制器,可能依文档的不同,使用不同文档中指定的线型库;坐标系统,可能依不同的文档而不同。图形对象使用绘制工具[29]提供的方法,绘制自身。类图如图3-19所示。 图3-19 绘图机对象 37 西北工业大学硕士学位论文 图形平台基础部分设计 ⑥ 坐标系统对象 坐标系统主要功能是在各坐标、投影和单位之间相互转换。坐标变换系统,实现了世界变换(用户变换)、页面变换和投影变换。类图如图3-20所示。 图3-20 坐标系统对象 ⑦ 客户端初始化和配置图形模块 创建图形模块类工厂IGraphModuleFct,该工厂对客户隐藏了具体的图形模块,客户只知道IGraphModuleFct接口。 采用Builder模式的意图:构造过程中允许被构造的对象有不同的表示。 IGraphModuleFct接口将关于该系统使用哪些具体的类的信息封装起来[30]。它隐藏了这些类的实例是如何被创建和放在一起的。不同的IGraphModuleFct具体类可以创建不同类对象,以满足组件化的要求。如CGraphModuleFct1的NewDocument方法创建GeoMap文档对象,而CGraphModuleFct2的NewDocument方法则创建LogMap文档对象。同时IGraphModuleFct接口还隐藏了文档、坐标、绘制器、工具管理器、窗体事件处理器等对象38 西北工业大学硕士学位论文 图形平台基础部分设计 间的关系,client不需要考虑它们的互相关系。 IGraphModuleFct创建和配置一系列图形模块所需要的一组对象,使用方式是客户先调用BuildXXX方法生成所需要的对象或者通过调用NewDocumnet,OpenDocument方法生成, 然后由Document、Coordinate、ToolsMng等属性得到所需要的对象再单独配置(初始化)这些对象。调用NewDocumnet,OpenDocument方法时,只生成文档对象,坐标对象,绘制对象,其它对象如工具管理对象、信息提供对象、数据交换器等需要的话可通过调用BuildXXX生成。 有时一幅图件可能指定了是用何种符号、线型绘制器绘制的,用哪个符号、线型库, 这在打开文档时可调用BuildPlotter进行配置。BuildPlotter方法也使得在程序运行过程中 可以随时更换符号、线型绘制器和符号、线型库。其他对象比如信息提供着对象也有相同的情况。 窗体处理器(IWndHandler)则由客户实现后调用WndHandle属性设置。类图如图3-21所示。 图3-21 客户配置 3.2.5 通用图形模块 整个图件是个树状结构,CMap为根节点,CLayer为中间节点,文字、点、线、面等基本图元是叶子结点。图件CMap实现IDataItem,IGraph,IDocument接口。图层CLayer实现IDataItem,IGraph接口。图元至少要实现IDataItem,IGraph接口,可以选择实现IFeature接口。图元的坐标数据不限定使用何种坐标系,但绘制时要转换成世界坐标才能绘制。图39 西北工业大学硕士学位论文 图形平台基础部分设计 元的度量数据使用图纸坐标,绘制时转换成世界坐标。图元的样式定义使用绘制机中定义好的样式,绘制时调用绘制机的方法绘制。如果有多种样式,必须能切换让用户选择。 3.2.6 专用图形模块 根据实际业务应用,由基础和通用图形模块组合而成的专用图形模块,包括单井图形模块、多井图形模块、等值线图形模块等。 1) 单井图形模块 图元的组织管理方式采用树型结构,通过图件管理图层,图层管理图元,图件是根节点。具体实现可以用链表方式。 CGraph是图元的基类,CPillar是柱子图元的基类,其它各具体柱子都从CPillar派生,柱子只与深度相关,相互间并无依赖关系。井结构(CWell)、栏头(CFrame)、负责表(CTable),以及文字标签(CLabel)和图例(CLegend)和柱子基类一样,都从CGraph派生。 类图如图3-22所示。 图3-22 单井专业图形模块 3.3 小结 本章以设计原则为指导方针,运用面向对象技术和Builder、Composite、 Strategy、Singleton等多种设计模式,设计了一个以图形基础层为核心的、可扩充的、可复用的图形平台基础技术部分,使其容易集成。符号样式变换灵活,满足了“不同年代,标准不同;不同油田,标准不同” 的个性需求。图形规范满足各模块协同操40 西北工业大学硕士学位论文 图形平台基础部分设计 作,通用/专业模块划分。 41 西北工业大学硕士学位论文 图形平台基础部分实现及应用 第四章 图形平台基础部分实现及应用 4.1 开发平台 为抢占市场,缩短开发工期。图形平台采用.NET 2005,主流语言采用C#, 基于面向对象技术[32],迭代式敏捷开发[33]和回归测试,在开发的同时不断重构[34]代码以改善软件质量。 XML文档设计工具采用的是ALTOVA公司的 XMLSpy 2006 Enterprise Edition[35]。 UML设计工具采用的是Rational软件公司的Rational Rose Enterprise Edition[36] [37]。 4.2 关键技术 4.2.1 点选中操作 对于点选中测试,由于只是鼠标点击一点进行选择,对于选中图元特别是曲线会非常困难。所以需要把点扩大成一个小矩形[38],扩大量可以用设备坐标或页面坐标(需单位转换),但绝对不能使用世界坐标或图纸坐标。 4.2.2 样式应用 样式匹配的设计是考虑到如下几个目标:一是无样式元素的图元可以得到此类图元的缺省样式;二是改变缺省样式就改变了图的面貌;三是部分样式的特例化(减少文件大小)。 一个图元的样式可以按如下路径查找:图元本身内嵌的样式元素→图层的缺省样式库→图件的缺省样式库。 一个图元获得它的样式有三种途径:内嵌样式元素;根据元素标签(tag)、class属性、id进行匹配来引用样式元素;使用style属性进行样式引用。如图4-1所示。 42 西北工业大学硕士学位论文 图形平台基础部分实现及应用 样式元素 selector=Tag 元素标签 图形元素 class属性 样式元素 id属性 style属性 样式元素 selector=.class 样式元素 selector=#id 样式元素 id=xxx 图4-1 样式查找 样式匹配类图,如图4-2所示。 图4-2 样式匹配 对应于类设计,我们抽象出模式匹配类CStyleMacth。它有一个方法GetStyle,返回得到的样式。IGraph接口拥有CStyleMacth类实例作为它的成员,IGraph接口绘制时调用CStyleMacth的GetStyle方法得到样式,而不必考虑样式是如何得到的,从哪来的。CStyleMacth有一成员Owner,表示其所属的IDataItem,用于GetStyle方法搜索图层图件得到缺省属性进行匹配。 CStyleClassMatch 样式类别匹配 CStyleIDMatch 样式ID匹配 43 西北工业大学硕士学位论文 图形平台基础部分实现及应用 CGraphTagMatch 图元标签匹配 CGraphIDMatch 图元ID匹配(比较少用) CDirectStyle 直接样式(内嵌的样式) CExceptionMatch 部分样式的特例化,它的StyleMatch是它引用的样式,Exceptions是特例化的部份样式。绘制时从StyleMatch得到样式,再使用反射技术将样式部分特例化。对于部分样式特例化,格式文件中内嵌的样式数据中不为空的数据就作为特例化数据。 4.2.3 坐标系统 坐标系组件负责在绘图时将数据的用户坐标转换为绘制坐标,在选择操作时将窗口坐标转换为数据的用户坐标。有两种分类方式:图形应用角度的分类、GDI+分类。 从图形应用角度看,坐标系分为:经纬度坐标、用户坐标、图纸坐标、显示坐标。 各坐标变换如图4-3所示。 比例尺 经纬度坐标投影变换 用户坐标单位换算 缩放比例 图纸坐标DPI 显示坐标 特别指出,用户坐标不一定是地理坐标,所以不一定能进行投影变换。用户坐标也可能是图纸坐标,所以不需要进行比例变换。用户坐标可能是不同的坐标轴代表不同的坐标类型,所以在进行比例尺变换时需要不同的轴单独处理。坐标轴向如图4-4所示。 图4-3 坐标变换 44 西北工业大学硕士学位论文 图形平台基础部分实现及应用 Y轴(米)X轴(毫米) 地理图 双向比例 1:100000 轴(米)柱状图 纵向比例 1:500 Y Y轴(米) X轴(米) X轴(米) Y轴剖面图 横向比例 1:10000 纵向比例 1:500 统计图 双轴不同比例 单位不定 X轴 图4-4 坐标轴向 例如:在GDI+中,坐标系分为全局坐标、页面坐标、设备坐标。如图4-5所示。 全局变形 应用程序 页面变形 全局坐标 页面坐标 设备坐标 设备 图4-5 GDI+坐标变换 全局变形可以通过Matrix实现,全局变形后的单位由PageUnit指定。设备单位一般为像素点。解析度有DPI指定,即页面变形为DPI的比例关系。 在绘制过程中,可以通过Graphics对象方法实现GDI+坐标系统得变形,但是在选择和操作过程中,我们得不到Graphics对象,从鼠标点坐标到用户坐标的变换必须通过坐标系组件实现,其过程要与Graphics的过程一致。 通过使用世界坐标的概念建立两者的关系,即用户坐标=全局坐标=世界坐标,显示坐标=设备坐标。如图4-6所示。 45 西北工业大学硕士学位论文 图形平台基础部分实现及应用 经纬度 用户坐标 全局坐标 图纸坐标 页面坐标 设备坐标 图4-6 坐标映射 度量数据的转换,图元的度量数据自己约定度量单位;使用CUnitCovert进行单位转换,转换到ICoordinate的图纸坐标;ICoordinate.TransformLen将图纸坐标转换到世界坐标(用户坐标);如果世界坐标系统的X轴和Y轴单位不一致,ICoordinate.TransformLen中需要指定要转换到那个轴的单位。 示例: class CPoint : IGraph { } PointStyle m_style; m_style.PointSize(10,10); // 10mm大小,缺省单位是mm(自己约定). Draw() { } CSizeD szBackup = m_style.PointSize.Clone(); CUnitConvert.Convert (Plotter.Coordinate.MapUnit,mm,m_style.PointSize); Plotter.Coordinate.TransformSize(world,map,m_syle.PointSize) Plotter.DrawPoint(x,y,m_style); m_style.PointSize = szBackup ; 46 西北工业大学硕士学位论文 图形平台基础部分实现及应用 4.2.4 曲线算法 1) 曲线分割算法 曲线分割不是指直接将曲线分成几段。主要是绘制符号、文本修饰的曲线(就是说符号、文本叠加到曲线上)时,要求符号、文本下的曲线段(被符号文本挡住的那部分曲线段)不绘制,相当于把符号、文本下的曲线段砍掉。 线段的参数方程 有线段p1p2,已知p点到p1点的距离/线段总长=r,求线段上的点p。p1,p2,p都是二维向量,则p = p1+ (p2-p1)*r。 如图4-7所示。 图4-7 线段 示例:曲线由p1至p8点组成,pa-pb线段是将要从曲线中砍掉的部分。如图4-8所示。 图4-8 曲线分割 ① 单个分割体分割曲线 确定pa点坐标,确定与之相邻的两个坐标点。根据这两个已经条件可分离pa前的曲线段。 确定pb点坐标,确定与之相邻的两个坐标点。根据这两个已经条件可分离pb后的曲线段. ② 多个分割估分割曲线 调用单个分割体分割曲线函数后得到前后两条曲线,把后曲线当作分割曲线用下一个47 西北工业大学硕士学位论文 图形平台基础部分实现及应用 分割体继续分割,直到分割体分完或者到曲线尾为止。 2) 曲线平行线算法 曲线的平行线主要用于曲线的偏移和一些复杂的交通线型制作,例如铁路线,公路线等。 曲线平移后对于连接控制点的处理方式,有以下三种方式。 ① 截断法 这种方式是对于曲线平移后,对于连接点作两个方向平移,然后直接连接.。此方法对比较陡的曲线的平行后绘制时防止曲线绘制严重变形。 处理流程如下,假设曲线三个控制点分别为p1,p2,p3;对于线段p1p2计算平移点p11,p21;对于线段p2p3计算平移点p22,p32;平移后的曲线的控制点就为:p11,p21,p22,p32。如图4-9所示。 图4-9 截断法 ② 相交法 这种方式是对于曲线平移后,对于连接点作两个方向平移,然后连接得到交点。此方法对一般曲线的平行处理效果好,但对于特陡的曲线平移后效果不好。 处理流程如下,假设曲线三个控制点分别为p1,p2,p3;对于线段p1p2计算平移点p11,p21;对于线段p2p3计算平移点p22,p32;计算p11p21和p22p32的交点p0;平移后的曲线的控制点就为:p11,p0,p32。如图4-10所示。 48 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-10 相交法 ③ 调和法 这种方式是对于曲线平移后,对于连接点作两个方向平移,中间按照下面的规则插点连接。此方法对比较陡的曲线的平行线时端点处比较柔和好看。 处理流程如下,假设曲线三个控制点分别为p1,p2,p3;对于线段p1p2计算平移点p11,p21;对于线段p2p3计算平移点p22,p32;计算曲线p1p2和p2p3的夹角;以连接点p2为中心,以平移距离为半径;按照等角度间距插点,在p21和p22之间插入六个点pi1,pi2,pi3,pi4,pi5,pi6;平移后的曲线的控制点就为:p11,p21, pi1,pi2,pi3,pi4,pi5,pi6,p22,p32。如图4-11所示。 图4-11 调和法 4.3 系统发布及应用 图形平台基础技术部分已基本完成,其中图形基础、基础绘制、图形应用规范、通用图形模块已完成,专用图形模块的单井和多井模块部分完成大半工作,上层特定应用部分已经开始实现。目前已在大庆油田项目及公司图形产品二次开发中进行应49 西北工业大学硕士学位论文 图形平台基础部分实现及应用 用,经过实践检验,系统架构能较好地适应需求的变化。 4.3.1 符号库 1) 符号库显示 实现符号的各种绘制、填充、子符号的不变形缩放、不同步旋转等功能。如图4-12所示。 图4-12 符号显示 2) 符号选取(PickSymbol) 浏览符号,进行指定符号选取,如果符号中存在帧,可以按帧号选取。如图4-13所示。 50 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-13 符号选取 4.3.2 线形库 修饰支持实线、虚线、点划线、自定义等初级线型,及颜色设定,可以设定与原始曲线的距离值(偏离值)。修饰支持按指定的位置沿着曲线的路径绘制文本或符号。如图4-14所示。 图4-14 线形显示 51 西北工业大学硕士学位论文 图形平台基础部分实现及应用 4.3.3 图形规范 1) 曲线编辑 对曲线可以进行加点、删点、构面等操作。如图4-15所示。 图4-15 曲线编辑 2) 通用操作 选中、旋转、组合、拖动,改变样式、放大、缩小、平移、复制、粘贴等。如图4-16所示。 52 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-16 通用操作 4.3.4 图形模块 1) 通用图元 由形状(包括五角星、六边形、矩形、三角形、扇形等表现形式)、点、线、面、文字和子图件组成,有多种填充和绘制方式可以选择。如图4-17所示,其中绘图区中最下方由多个线型组合而成的是子图件。 53 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-17 通用图元 2) 专业图形(单井) 单井既一个井位,内部由多个道(柱子)组合而成。道包括各类繁多,如深度道、岩性道、油气分层道、地层道、符号道、曲线道、钻井取芯道、组份含量道[40]等。单井图如图4-18所示。 54 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-18 单井图 4.3.5 综合应用 基于上述各基础部分,在专业图形模块(单井、多井)之上,组合应用到实际项目中既是综合应用。例如多井操作,多井就是多个井位,井位之间由指定特殊道(如地层道等)的地层不同来进行连接,井间连线也有多种表现形式,如断层、尖灭等形式。如图4-19所示,绘图区由两个井组成,井间由地层道来进行连接,连线可以用符号或颜色进行填充,连线间的两条交叉红线为断层线,遇断层时连线会根据断层深度产生一定的错位表现。黄色连线中锯齿表现形式为尖灭连线样式。 55 西北工业大学硕士学位论文 图形平台基础部分实现及应用 图4-19 综合应用 4.4 小结 本章介绍了图形框架实现选用的开发平台、涉及到的关键技术以及图形平台基础技术部分的应用推广情况。 56 西北工业大学硕士学位论文 结束语 第五章 结束语 石油图形平台以基础技术层为基础,再配上灵活通用的操作工具,丰富的图形资源(符号库、线型库等),提供丰富的接口,利用上面应用层部分组合定制出各种具体的业务系统。该平台设计层次清晰,构件之间耦合度低,易于集成应用,能较好地适应需求的变化。数据成图自动快速,成果图可以交流共享, 资源的复用性高。 那么,理论上可以说,所有的二维图形应用产品都可以基于基础图形平台搭建而成。这样一来,最初为石油领域数字可视化应用设计的图形平台,可以跨出石油领域,应用于各个领域了。这是一个令人惊喜振奋的设想,若要实现这一目标,还需要更深入、更细致、更缜密的分析和构思,这将是本课题进一步研究的方向。 57 西北工业大学硕士学位论文 参考文献 参考文献 [1] GIS模式.http://www.gispark.com/html/develop/2006/1117/552.html,2006.11. [2] 国产GIS平台.http://web2world.cn/article/2007/07/a41.html,2007.7. [3] 二次开发GIS.http://blog.csdn.net/fengyun925/archive/2007/10/22/1836515.aspx,2007.10. [4] 中华人民共和国石油天然气行业标准.SY5615-93 石油天然气地质编图规范及图式. [5] 大港油田企业标准.Q/DG 1287-1998 钻井地质录井综合图编绘规范. [6] 大港油田企业标准.Q/DG 1330-1998 钻井地质岩心综合图编绘规范. [7] 大港油田企业标准.Q/DG 1094-1999 钻井井壁取心地质技术规程. [8] 塔里木石油勘探开发指挥部企业标准.Q/TZ 85-94 油气探井完井地质图幅编绘规范. [9] 塔里木石油勘探开发指挥部企业标准.Q/TZ 79-94油气探井岩屑岩心录井图编绘规范. [10] 裘怿楠,陈子琪主编.油藏描述.北京:石油工业出版社,1996. [11] 顾志方,赵水霖.互联网技术在石油勘探开发图形库中的应用.江苏地质.2000,24(3):148-152. [12] 潘继平,王华等.基于GIS的石油勘探图形库系统分析和设计.中国地质大学学报,2002,27(1):59-62. [13] James Carey,Brent Carlson.框架过程模式.林星等译.人民邮电出版社,2003.6. [14] 王咏武.苍蝇、蚊子和臭虫-重构和设计模式实践指南.程序员,2004(9):93-98. [15] 闫自凯,杨宛辉,王军.电力系统智能支持平台的研究.继电器.2001,29(4):26-28. [16] 杨海晶,李予州,杨宛辉.适用于电力系统应用软件的图形平台开发与研究.继电器.2003,31(09):43-48. [17] Ivar Jacobson,Martin Griss,Patrik Jonsson.软件复用--结构、过程和组织.韩柯译.机械工业出版社,2003.1. [18] SVG标准.http://www.w3.org/TR/2005/WD-SVGMobile12-20051207/,2005.12. [19] W3C Recommendation 04 February 2004.Extensible Markup Language (XML) 1.0 (Third Edition).http://www.w3.org/TR/REC-xml/,2006.8. [20] GML - the Geography Markup Language 3.1.用于地理信息系统的xml标准. http://www.opengis.net/gml,2004.9. [21] 周蓉.基于智能可视化定制平台CVIDraw的图形图像Web发布研究.[学位论文].合肥工业大学,2004. [22] 朱述坤.油气勘探知识型数据库管理系统研究.[学位论文].北京:中国地质大学石油与天然气工程系,2006.5. [23] 靖小伟.油田地面采油工程地理信息系统实现方法研究.[学位论文].哈尔滨工程大学计算机应用系,2002.1. [24] 张玲,陈元春,孙勇.基于GDI+的通用图形平台设计.计算机工程.2005,31(12):58 西北工业大学硕士学位论文 参考文献 218-220. [25] 范遂,张贝克,吴重光. 基于SFC的图形系统的设计与开发. 计算机仿真.2007,24(08):272-274. [26] Erich Gamma,Richard Helm.设计模式-可服用面向对象软件的基础.李英军等译.机械工业出版社,2000. [27] 程志庆.油田联合站虚拟现实仿真系统的研究与实现.[学位论文].吉林大学计算数学系,2006.4. [28] 孟红.面向对象的交互式图形系统研究.[学位论文].辽宁工程技术大学计算机应用技术系,2004.12. [29] 彭丽虹.面向对象的变电站图形系统的研究与开发.[学位论文].合肥工业大学电力系统及自动化系,2007.5. [30] 赵东.基于石油行业的综合录井系统的研究和开发.[学位论文].西安电子科技大学软件工程系,2005.4. [31] Craig Larman.UML和模式应用(第3版).李洋等译.机械工业出版社,2006.5. [32] Michael Blaha,James Rmbaugh.UML面向对象建模与设计(第二版).车皓阳,杨眉译.人民邮电出版社,2006.1. [33] Robert C Martin.敏捷软件开发—原则、模式与实践.邓辉译.清华大学出版社,2003.1. [34] Joshua Kerievsky.重构与模式.杨光,刘基诚译.人民邮电出版社,2006.12. [35] XMLSpy - XML editor for modeling, editing, transforming, & debugging XML technologies.http://www.altova.com/products_ide.html,2008. [36] Ivar Jacobson,Grady Booch,James Rumbaugh.UML用户指南.机械工业出版社,2002.6. [37] Rational Rose Enterprise Edition.一种基于UML的面向对象的可视化建模工具. http://download.csdn.net/source/181544,2007. [38] 陆建飞.基于图形学技术的电网图形系统分析与设计.[学位论文].武汉理工大学管理科学与工程系,2005.10. [39] 周建彬.终端图形框架的研究与设计.[学位论文].华北电力大学计算机应用技术系,2007.1. [40] 王柯.自定义格式录井图件绘制系统开发.[学位论文].华中师范大学无线电物理系,2004.3. 59 西北工业大学硕士学位论文 致谢 致谢 本论文的研究工作是由北京侏罗纪软件股份有限公司提供的实践项目,在校内导师吴广茂研究员和企业导师郭晔副教授的指导下完成的。 感谢侏罗纪公司给我提供了石油图形平台设计和开发的实践机会。论文中的许多思想都源自于公司领导和同事的启迪,以及与他们探讨交流的结果。我从他们那里学到了很多石油专业知识和开发技术。 在研究生阶段这两年多的时间里,学习既紧张又快乐,感觉很充实。为此,感谢软件学院的老师和同学们。 最后,感谢我的父母和姐姐,感谢我的妻子在我读研期间给予的关心和支持。 60