欢迎来到天天文库
浏览记录
ID:5234479
大小:27.00 KB
页数:5页
时间:2017-12-06
《gdi+绘制测井曲线面向对象设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GDI+绘制测井曲线面向对象设计和实现 摘要:GDI+提供了从简单到复杂图形绘制的大量方法。主要对如何在VisualC#.NET中使用GDI+实现测井曲线的绘制进行研究。采用面向对象的方法,使用改进后的抽象工厂模式进行图形设计,可以实现对已绘制的图形进行移动、编辑等功能,同时使系统具有较好的灵活性、扩展性和复用性。关键词:GDI+;测井曲线;图形对象;设计模式中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)31-6999-03国外的测井成像技术起步较早,其中美国在测井成像领域拥有先进成熟的技术。随着计算机图形技术在各行各业的应用,世界各地测井解释人员及计算机工
2、作人员开始加强对测井成像的研究。20世纪70年代初,我国油田内部开始使用计算机技术进行测井数据的处理和分析。在此之后,伴随着高性能计算机和图形技术的发展,测井绘图系统相继推出。测井解释向着数据处理、结论解释、成果图形展示一体化方向发展。国内具有代表性的解释系统有:Forward地层油气层测井评价系统,LogVision测井分析平台。5测井解释的发展虽然已有四十年的历史,且多数测井解释平台已经使用面向对象进行开发,但是在二次开发和复用时,需要付出大量时间做重复性工作。软件重用中重要的组件很少用于测井解释平台软件。因此本次设计在实现测井曲线的同时,结合改进的抽象工厂模式和组合模式部分内容,封装
3、绘图组件同时方便增加新的图形类型对象(仪器串图、地层测试成果图等),使系统具有较好的可扩展性、灵活性和方便性,同时达到复用的效果。1相关技术1.1GDI+GDI(GraphicsDeviceInterface,图形设备接口)的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出,是WindowsAPI(ApplicationProgrammingInterface)的一个重要组成部分,是Windows图形显示程序与实际物理设备之间的桥梁。GDI使得用户不需要注重具体设备的细节,只需要在一个虚拟环境(逻辑设备)中进行操作。实现了程序开发人员与硬件设备的隔离,为开发
4、工作提供了便利。5GDI+是对GDI改进的结果,在GDI的基础上优化了原有的功能,新添加了二维矢量图形的显示、图像处理和版式处理等诸多功能,主要负责在显示屏幕和打印设备输出有关信息。GDI+类和接口是.NET框架的组成部分。通过使用GDI+,可以创建图形、绘制文本以及将图形图像作为对象操作,同时软件开发人员可以使用GDI+在Windows窗体和控件上方便地呈现自定义组合图形图像。1.2设计模式抽象工厂设计模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。具体工厂类在应用中只需要初始化一次,改变具体工厂即可使用不同的产品配置。这个模式的主要结构如图1所示。Abstra
5、ctProductA和AbstractProductB是两个抽象产品,它们都有可能有两种不同的实现,而ProductA1、ProductA2和ProductB1、ProductB2就是两个抽象产品的具体分类的实现。AbstractFactory是一个抽象工厂接口,它里面包含所有的产品创建的抽象方法,ConcreteFactory1和ConcreteFactory2是具体的工厂。通常是在运行时刻再创建一个ConcreteFactory类的实例,这个具体的工厂再创建具有特定实现的产品对象。2绘图设计在客户端程序中,定义绘图对象,通过工厂类的创建函数,传递对象类型,生成不同的绘图对象。通过调用相
6、同的接口函数实现不同的绘制方法。具体设计框图如图2所示。5客户端程序无需与具体图形类打交道,只需知道父类与工厂类就能创建图形,使系统的结构更加清晰,层次更加分明,有利于系统的开发与调试。如果要增加功能,需要添加新的主要图形对象时,客户端程序和父类接口都不需要做任何改动,只需增加新的图形类,在工厂类的创建对象函数中增加创建新类对象的代码即可,使系统有较强的可扩展性。用户可以在客户端对图形进行移动、改变大小、编辑属性等操作,这些都是封装在类的内部实现,用户直接调用接口方法,从而无需了解其中的过程,很好地实现了封装。从图2可以看到,Track类和Curve类都是由不同的子元素构成,这里提取了组合
7、模式的概念,对这两个类进行了组合。子元素只出现在父元素的内部,因此在客户端所展示的只有父元素(Track类和Curve类),这也使得客户端简洁易懂。同时子元素内部还有更细小的元素,例如柜形框类(PRectangle),直线类(PLine),字体类(PFont),文本类(PString)等绘图基本元素类。当增加一个新的绘图类时,也可以直接使用这些绘图基本元素类,达到重用的效果,增加系统的灵活性。3系统实现4结束语5通过上述
此文档下载收益归作者所有