GDI+

2024-06-09

GDI+(精选8篇)

GDI+ 篇1

1 引言

在软件图 形化人机 界面中 , 经常需要 根据计算 的数据内容变化, 实时绘制不同形态的图形, 这种图形化界面可以使得软件数据描述清晰直接、 人员理解掌握状态简 单明了 、 大大地提高显示效果, 比如在列车调度系统中显示列车在铁路上的运行位置、 水文监测系统中显示水位的升降、 自动控制系统 中显示仪 表指针的 摆动等 , 都是数据 驱动图形 绘制的实现。

对于数据驱动图形化显示界面的软件设计编程, 最基本的方法是通过直接编写程序, 如用GDI语句绘制实现二维图形界面, 这种方法适用于比较简单的图形绘制 , 图形复杂 , 编程工作量将成倍增加, 并且不是所见即所得的设 计过程 , 可能难以达到预想的效果。 当软件界面显示的图形特别复杂时, 可以使用一些图形工具软件进行图形绘制, 将结果保存为数据文件, 再由实际设计的软件调取这些数据, 进行内容解析和数据变换后进行软件的界面显示, 如三维图形的界面显示使用3D Max创建三维模型, 再由程序调用数据进行显 示, 这种实现过程方法比较复杂、 消耗的资源大, 且经常需要第三方的数据引擎和显示引擎。

对于实际工作中设计实现的软件。 通过代码绘制界面费时费力, 借助图形工具软件创建数据并调用显示又过于复杂, 根据这一需求, 设计实现了能够直接生成MFC语言格式GD绘图语句的绘图辅助软件, 该软件能够用于二维图形数据驱动界面显示的软件设计实现工作过程, 达到提高编程效率的目的。

2 基于 UML 的绘图辅助软件

2.1 需求分析

绘图辅助软件即为一个矢量绘图软件, 软件的绘图操作方式反映了GDI绘图语句的运行过程和语句结构特点, 使得能够直接输出MFC语言格式的GDI绘图程序代码, 从而起到以所见即所得直接生成程序代码、 简化了软件界面编程工作的作用。 软件的功能需求分析简述如下:

(1) 通过鼠标 在屏幕上绘 制多种图形 。

(2) 通过鼠标 拖动修改 图形的位置 、 显示状态和内容等 特征参数, 也可以使用键盘在图形属性列表中修改。

(3) 图形能够进 行放大或 缩小显示 。

(4) 图形可以 进行删除 、 锁定 、 组合等操 作 。

(5) 图形绘制 和修改完成后 , 能够以MFC语言的格式 输出程序代码, 代码可以在复制在MFC编制的软件中直接执行。

2.2 系统建模

根据功能描述可以抽象出4个主要用例: 绘制图形、 修改图形、 图形缩放、 图形管理和代码输出, 其中修改图形有二个子用例, 图形管理用3个子用例, 软件用例图如图1所示。

设计实现一个图形编辑类软件, 对于基本组成图形单元的统一抽象、 管理与可视化是其中的核心和难点内容。 通过对图元种类分析归类, 建立图元的基类Cell, 用来完成对属性的封装和操作接口的定义, 建立图元列表类Cell List用于统一管理软 件创建的 图元 。 软件建立 了与GDI语句对应 的Pen、 Brush、 Font等环境设置类 , 这些类不能在屏幕 上显示 。 对于能够显示的图元单元, 需要在图元基类的基础上派生图形基类Shape, 在Shape类基础上 , 派生具体 的形状类 如直线类Line、 曲线类Arc、 Bezier文字类Text等 , 这些类继承 了基类的属性和接口方法, 完成与之形状相关的具体实现。 软件的图元类图设计如图2所示。

根据软件用例描述, 分析总结软件在操作过程中的交互行为过程, 主要包括图形绘制、 图形修改、 图形缩放、 图形管理和图形代码输出5个工作过程, 其中图形绘制和图形修改是最主要的两个过程。

图形绘制过程步骤是: 在工具栏选择图形种类, 再在画布上用鼠标点击指定图形的特征点, 完成对图形的创建, 序列图见图3:

图形修改、 图形编辑、 图形管理和图形代码输出过程不进行详述。

在软件的操作使用过程中, 每个图形包含6个状态: 创建状态、 正常状态、 被选择状态、 组合状态、 锁定状态、 隐藏状态、 软件的图元状态图如图4所示。

3 软件实现效果

软件界面如图5所示

软件实际输出的程序代码如下:

4 结语

设计实现的绘图辅助软件, 能够在所见即所得的情况下完成图形绘制、 编辑、 保存和GDI绘图语句代码输出的功能, 在实际界面编程工作中, 节省了编程时间、 提高了工作效率, 起到了较好的辅助作用。

摘要:对于数据驱动图形化显示界面的软件代码设计,直接编写代码费时费力,借助图形工具软件又比较复杂且消耗资源大,根据工作需要,设计实现了专用于程序设计的辅助绘图软件,直接能够输出GDI程序代码语句,取得了较好的应用效果。

关键词:绘图辅助软件,GDI语句,程序代码输出

GDI+ 篇2

警告 如果正确修改注册表通过注册表编辑器或通过其他方法可能发生 Serious 问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证能够解决这些问题而。 修改注册表需要您自担风险。

通过编写到 MicrosoftDirectX 表面 Windows 照片库显示图像。 但是, 可能需要强制 Windows 照片库以通过 GDI 出于以下原因显示图像:? 可能遇到与视频卡驱动程序与 Windows 照片库如何向 DirectX 表面上显示图像不兼容问题。

您可能使用实用程序, 必须强制 Windows 图片库通过 GDI 来访问屏幕位写入。

您强制程序以通过 GDI 显示图像时 注意 Windows 照片库: 性能降低显著。 请仅当很必要因此, 使用此注册表项。 然后, 重置注册表项以尽快零值。

使窗口照片库通过 GDI, 显示图像, 必须创建注册表项,

要这样做, 请按照下列步骤操作:1. 单击开始类型 regedit 在 开始搜索 框, 然后再单击 regedit.exe 程序 列表中。

如果您对管理员密码或确认, 提示输入密码, 或单击 继续 。

2. 单击以下注册表子项:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Photo Gallery

3. 在 “ 编辑 ” 菜单, 指向 New , 然后单击 密钥 。

4. 类型 Viewer 同名的新条目和然后按 Enter。

5. 在 “ 编辑 ” 菜单, 指向 New , 然后单击 DWORD (32 - bit) 值 。

6. 类型 ForceSoftwareRender 同名的新条目和然后按 Enter。

7. 在细节窗格中, 双击 ForceSoftwareRender 项。

8. 在 数值数据 框中, 键入 1然后单击 确定 。

GDI技术在物理实验中的应用 篇3

关键词:马吕斯定律,偏振光,玻片

0 引言

光的偏振特性研究是观察在对马吕斯定律的验证和观察布儒斯特角进行定量直观的研究。随着电脑技术的发展,.NET开发成为最具效率的技术之一,能够方便快捷的达到作图和处理数据的目的。本文采用基于.NET的GDI技术来处理数据,使偏振光试验数据处理过程简洁,也提高了效率。

1 仪器与用具

KF-WZS型偏振光实验仪、半波片、1/4波片。

2 实验原理

2.1 光的本质

光是一种电磁波,而电磁波是横波,它有电矢量E和磁矢量H,习惯上我们总是用电矢量E来代表光波。光波中的电矢量与波的传播方向垂直,光的偏振现象清楚得显示了光的横波性。

光大体上有五种偏振状态,即线偏振光、圆偏振光、椭圆偏振光、自然光和部分偏振光。其中线偏振光和圆偏振光由可看作椭圆偏振光的特例。

椭圆偏振光可视为两个沿同一方向z传播的振动方向相互垂直的线偏振光(一个为电矢量Ex,一个为Ey)的合成:

2.2 马吕斯定律

一束光强度为I0的线偏振光,透过检偏器以后,透射光的光强度为I=I0·cos2θ,其中θ是线偏振光的光振动方向与检偏器透振方向间的夹角,该式称为马吕斯定律。

2.3 布儒斯特定律

光从折射率为n1的介质射向折射率为n2的介质时,当入射角满足:,反射光就变为振动方向垂直于入射面得完全偏振光,而折射光仍为部分偏振光,i称为布儒斯特角。由折射定律和布儒斯特定律,可以证明:当入射角等于i时反射光和折射光相互垂直。即:

2.4 波片的特性

波片是一种对二垂直振动分量提供固定相位差的元件,是从单轴晶体中切割下来的平面平行板,其表面平行于光轴。δ=2·π·(No-Ne)·d/λ式中d为波片厚度,λ为光在真空中的波长。于是,入射的偏振光通过滤片后,由于其二垂直分量之间附加了一个相位差,将会改变偏振状态。

半波处的附加相位延迟差为δ=(2n+1)·π(n=0,±1,±2…)出射光仍为线偏振光。λ/4波片的附加相位差为δ=(2n+1)·π/2(n=0,±1,±2…),线偏振光通过λ/4波片后,出射光将变为长、短半轴等于Ae,Ao的椭圆偏振光。

本实验主要着重通过马吕斯定律,布儒斯特射,以及利用波片的性质验证偏振光的现象。

3 实验内容

3.1 验证马吕斯定律

调整两偏振片透光轴平行。方法是将起偏器不动,转动检偏器,直到照度计示值最大为止。此时记下检偏器度盘上的角度示值θ,θ即为两偏振片透光轴平行时,偏振片度盘上的角度示值。将起偏器每转10°,记下功率计的示值。

3.2 观测光以布儒斯特角入射的偏振现象

去掉起偏器,把玻璃堆放置转台中心,用压片固定,调节转台使玻璃堆与入射光线垂直,完毕将玻璃堆转至布儒斯特角,转动转臂,观察功率计读数,在读数最大处固定转臂,旋转检偏器,旋转一周,观察功率计功率变化,每隔30°记录一个数据,参照数据并分析原因。

3.3 观察波片现象

定偏振片光轴:把所有器件按原理图的顺序摆放在平台上,调至共轴。旋转第二个偏振片,使起偏器的偏振轴与检偏器的偏振轴相互垂直,观察消光现象。

考察平面偏振光通过λ/2波片时的现象。在两块偏振片之间插入波片,把X轴旋转二维架转动2π的角度,观察消光的次数,记录数据并解释这现象。将波片转任意角度,这时消光现象被破坏。把检偏器转动2π,记录数据并观察发生的现象。仍使起偏器和检偏器处于正交(即处于消光现象时),插入波片,使消光,再转15°,破坏其消光。转动检偏器至消光位置,并记录检偏器所转动的角度。继续将波片转15°(即总转动角为30°),依次使波片,总转角为30°,45°,60°,75°,90°,记录检偏器消光时所转的总角度。

再次,用波片产生圆偏振光和椭圆偏振光。使起偏器和检偏器正交,用λ/4波片代替λ/2波片,转动λ/4波片使消光。同上步骤,记录所观察到的现象。

4 实验结果与分析

4.1 验证马吕斯定律

4.2 观察λ/2波片的现象

4.3 观察λ/4波片的现象

如下图以cos2θ为横坐标,I为纵坐标作I-cos2θ关系曲线,由此验证马吕斯定律。

如下图以θ为横坐标,I为纵坐标如下所示,作I-θ的关系曲线如下所示。

布儒斯特角入射时折射光功率计的变化:布儒斯特角入射时反射光功率计的变化(偏振片1):

布儒斯特角入射时反射光功率计的变化(偏振片2):

消光状态下与未消光状态下检偏器光强随角度的变化:

4.4 实验总结

从图3可知,光强I随着cos2θ的变化成线性关系,并验证了马吕斯定律的I=I0cos2θ,当θ在90°至180°时I与cos2θ关系曲线和上图走势一样。

图4-2和图4-3相比较可知,不同的偏振片取得光强最值时所旋转的角度是不一样。

图4-1和图4-2相比较可知,反射光的光电流最值明显大于折射光的最值,说明当入射角等于布儒斯特角时反射光是线偏振光,而折射光是部分偏振光。

从图5可知,光强随检偏器角度会呈现周期性的变化,消光与未消光两种状态作对比可知,消光状态时的最大光强要比未消光状态的强。

从表6可知,光经过半波片时会产生的π奇数倍的相位延迟,使得经过玻片的入射光线偏振光矢量与波片快(慢)夹角为θ,出射线偏振光的光矢量向着快(慢)方向转2θ。

从表7可知,使波片消光后,旋转检偏器消光2次,而表8可得破坏波片消光后,无消光现象。

从表9可得波片转动的角度30°、60°和75°时,没有消光但光强有变化,检偏器逐渐旋转2π的过程中出现两次最亮与最暗且最亮与最暗相差90°。

经1/4波片后,光的偏振状态为椭圆偏振光;转动的45°,转动过程中光强没有变化,经过波片后,光的偏振状态为接近圆偏振光;转动的90°,当检偏器和起偏器的透振方向垂直时消光,由垂直转向平行时逐渐变亮,检偏器和起偏器的透振方向平行时最亮,由平行转向垂直时逐渐变暗,经过波片后,光的偏振状态为线偏振光。由此证明了λ/4波片产生π/2奇数倍的相位延迟,能使入射线偏振光变成椭圆偏振光。若入射线偏振光的光矢量与波片快(慢)轴成正负45°时,将得到圆偏振光。

本次实验从马吕斯定律、布儒斯特定律、波片等三个方面对偏振片的偏振光性质进行了分析,基于.NET的visual studio开发的软件处理数据,使偏振光试验数据处理过程快捷方便。与传统的手工制图相比,通过.NET这个平台,能够方便快速达到作图和处理数据的目的,清晰明了,精确的结果,并且在使学生能更深刻的理解和掌握偏振光实验的同时,开拓他们的视野,构建了多学科穿插的想象空间。

参考文献

[1]竺江峰,芦立娟.大学物理实验[M].北京:中国科学技术出版社,2005:200-203.

[2]王燕涛,姜凤贤.普通物理实验中偏振光实验内容优化[J].物理通报,2011(06).

[3]母国光,战元龄,主编.光学:2版,物理专业经典教材[M].高等教育出版,2009,9.

GDI+ 篇4

钻孔柱状图是地质勘探分析中的基础图件,可形象刻画岩层、矿体等的地质结构及相互关系,是编制其它综合图件基本依据[1]。编制钻孔柱状图是地勘单位的基本工作,也是投入精力最多的工作之一。我国钻孔柱状图的绘制工作主要有两种形式,一是在手工精细绘制基础上,然后利用GIS、CAD或Coredraw软件进行矢量化成图,成图慢、效率低[2];另一种则利用各种程序设计语言基于AutoCAD或各类GIS平台进行二次开发[3],效果较好,但是对于广大的地质工作者来说,平台开发比较复杂,需进行专门培训,从而限制了系统的推广和应用。此外,国内外现有成熟软件,如uMap、GeoMaster、RockWare等软件,行业性强若只需生成钻孔柱状图一项功能,仍需要购买整个应用平台,需要培训;且国外工程地质软件,对中文不支持或支持较差,添加中文注释信息困难[4]。

因此,现行软件由于其功能不完善、不易使用等问题而未普及,钻孔柱状图的自动成图技术的研究探讨就有其必要性[5]。本文基于Access数据库(或改变连接字符串使用SqlSever),采用ADO.NET与GDI+相结合,在Visual Studio环境下实现了钻孔柱状图的自动绘制,并对图例填充、薄层处理等细节问题进行了探讨。

1 数据库的设计

1.1 钻孔数据库

根据钻孔要表达信息,建立ACCESS格式的钻孔数据库,建立钻孔的基本信息(包括名称、位置、坐标、标高、勘察单位、完探深度等)、分层特征(顶高、底高、厚度、累积厚度等)、地层特征(地层系、统、组年代信息、岩性描述等)、测试数据(室外岩心采取率、动探测试、井下电视、标贯信息、抽水试验数据等和室内土工试验等)、岩性图例(岩性图例填充符号编号、名称)等总共7个数据表。

1.2 表与表之间关系

在已建好的7个表中,采用基本信息表(Location)作为主表,其余6表作为子表,均采用“钻孔编号”为关键字(Data表中有值均为“钻孔编号”的数据列),每个表中都可依据关键字调出所需信息以供查询或操作。

1.3 岩性符号的管理

通过Windows提供的绘图软件或者专业的绘图软件如GIS、CAD、PS或者CoreDraw等依据《区域地质图图例》规范,按照标准岩性划分建立一套常用岩性符号图例,格式可以为bmp、jpg或gif,文件进行编码后存放到指定的目录,以便按编码直接调用,进行地质断面的填充。

2 技术思路

2.1 实现思路

本文钻孔资料自动成图主要思路是应用数据库ADO.NET,基于C#语言开发实现钻孔资料编辑管理模块与钻孔柱状图的成图算法。应用ADO接口提取钻孔数据的空间坐标和岩性特征生成相应的图斑,并在窗体的图形控件中实现成图显示。

在开发过程(见图1)中,数据库采用Microsoft Access作为数据平台,应用SQL数据库语言,建立钻孔资料的数据库,进行钻孔数据的输入、编辑、管理及提取;而成图则采用GDI+基本绘图模块,设置绘图参数以及柱状图的格式、框架,用ADO中读取分层和岩性描述数据进行框架填充,实现钻孔柱状图的自动成图,最终以方便的图片形式供研究人员分析。

2.2 开发中遇到的技术难点

2.2.1 绘图缓慢

工程地质软件有时要创建十分复杂的柱状图,将要绘制图形直接在窗口中绘出,即使配置较高的机器,也需较长时间才能显示。另外,图形或者文本在屏幕上绘制,会有意外闪烁。

2.2.2 分页问题

钻孔柱状图当前页绘制完成以后,会有当前钻孔未绘制完毕的情况,需要在新的一页甚至两到三页进行剩余部分的绘制,这就需要注意分层深度、岩性描述以及填充的衔接。有时某些钻孔剩余很少部分未绘制,需从实际应用考虑是否调整绘图比例,是否进行分页。

2.2.3 薄层处理

在绘制柱状图的沉积构造绘制时,由于薄层厚度太小,按既定的比例空间不够绘制分层数据和岩性描述,这就要求我们将薄层的绘出后,将要填写文字和数据的地方进行必要处理。

2.3 开发过程中的关键技术

所用程序设计语言C#.NET是微软在2000年7月推出.NET Framework的第一版是提供的一种新语言,近年来,由于其派生于C/C++简洁语法,仍能保持C/C++原来功能,对象定位简单,类型安全。尽管是新语言,已经成为Windows及Web开发人员的首选开发工具[6]。

GDI+(Graphics Device Interface,图形设备接口),将应用程序与图形硬件隔离,从而允许开发人员创建与设备无关的应用程序。它以继承类的方式,通过调用GDI+类提供方法,此方法又反过来调用相应特定设备的驱动程序,进而实现图形在屏幕或其它特定设备上的显示。GDI+提供的服务分为3个大类:二位矢量图形、图像处理和版式[7]。

ADO.NET是微软提供一组可用于和多种数据源(主要为数据库)进行交互的面向对象类库,其提供用与数据源进行交互的相关公共方法,可保证平台互用性和可伸缩的数据访问。类库主要有用于交互连接的Connection类,用于执行查询、修改、插入等操作的Command对象以及用于暂存数据的DataReader、DataAdapter类和DataSet对象等来撷取、处理与更新数据。

模块在开发过程中,针对开发中遇到的技术难点,一是采用双倍缓冲技术解决在计算机中直接绘图的速度缓慢并消除意外的闪烁效果,其次应用缓冲线绘制技术进行钻孔柱状图的薄层注释填充并用数组自动判断来实现分页,使得柱状图可以快速、美观的自动成图[8]。

3 基于GDI+进行地质钻孔柱状图的自动绘制

柱状图主要由表头、图框与填充内容等几大部分组成[9],其均绘制于Picture Box窗体中,具体各部分绘制分别实现,绘制代码所需命名空间为System.Drawing.2D。具体实现如下:

3.1 表头的绘制

表头包括钻孔的基本信息及柱状图的各列对应内容的列名,内容固定不变而且是各个钻孔的公用必需部分,可以在程序中事先设计好格式。与数据库的交互操作由数据连接读写类DataMean()与操作类DataOperate()实例化后执行。

(1)画表头线。不需连接数据库基于Pen()函数,已绘图控件左上为坐标原点,用屏幕起始点坐标绘制表头线,典型代码如下:

(2)填写表头。由Connection类连接数据库,应用DataReader类按关键字逐条读取数据并进行绘制,以DrawString()函数绘制表头数据,同时,以主表中的“钻孔编号”列值绑定钻孔选择下拉框comboBox1,典型代码如下:

调节下拉ComboBox值,即可得所钻孔柱状图表头,如图2:

3.2 图体框架部分及数据填充

因表头图幅已确定,图体框架的绘制也可以由DrawLine()函数绘出柱状图中固定的列线,而地层线的绘制则需要应用DataSet对象调用Data数据表中相应内容,转化为双精度值后进行绘制。程序的实现如下:

(1)读取分层数据,绘制地层线。读取数据以后,需要用数组有选择存储“累积厚度”字段值,然后进行定义Value[0与Value[*],进一步进行绘制,典型代码如下。

(2)分页处理

若柱状图在当前页未能绘制完毕,就要考虑分页问题。表头,表体和表尾三部分,在钻孔深度较大不能绘制完毕时,具体分层步骤实现如下:

(1)计算表体(是累计厚度和岩性描述区域累计值的最大值)和表尾的高度,查看剩余部分,若仅剩表尾,则调整表体的(绘图控件)的大小,尽量绘制成一页,若剩余数层地层,则另起一个新窗体进行绘制,格式固定;

(2)新窗体绘制时,事先定义好String全局变量,分别存储文字型的岩性描述,系统组等地层信息;Double全局变量,存储上层表尾处剩余的分层数值,以便下层继续绘制。并且注意变量即是清零。

画地层界线填写层底标高,深度,厚度,岩性名称以岩性描述以及水位、动探、钎击数的绘制,绘制过程与上两步大体相同,不再赘述。

3.3 应用双倍缓冲进行岩性图例的填充

针对在屏幕中绘制文字或图像时的速度缓慢或意外闪烁问题,可首先将存储好的图形绘制到图像对象,绘制完图像后,再将图像绘制至窗口,这个技巧就是双倍缓冲`。同理,该技巧也可先进行背景绘制,然后再在背景上进行图像绘制,这样,既可以缩短绘图时间,亦可以消除闪烁。具体的实现步骤如下:

(1)事先将图例数据库存贮至项目文件夹得Bin/Debug目录下。

(2)首先在窗体类中添加Image变量声明,在构造函数中创建SmallImage对象,创建纹理画笔,典型代码如下:

(3)编写窗体的OnPaintEvents()函数,将图像绘至Brush对象,而后由Brush绘成纹理画笔填充柱状图断面矩形,并注意画笔Dispose(),释放内存以避免耗尽。

3.4 运用缓冲线绘制技术,进行薄层处理。

当地层划分较薄而岩性描述文字又多、所显示比例尺较小的情况下(见图3),既定岩性描述区不能容纳全部岩性描述,则需要画缓冲线来解决,使其能较美观地显示。

具体的算法如下:

(1)定义一个数组,每次画完一行,记录这个行线的累积深度,根据ADO读出的岩性描述和岩性名称所占字符,计算出需要的最大行距,适当安排岩石名称和描述的位置;

(2)如果描述文字所占的总高度大于该层厚度,则以岩性描述文字的最低位置画横线来结束该层,否则,则以岩性描述文字所占的总高度来结束该层;最后一层应特别处理,如果最后一层的层厚大于或等于该层岩性描述文字所占的总高度,则按照层厚来画底界限。

(3)画线完毕后,将这个行线和岩层厚度的底板线连成缓冲线。

本文所作的柱状图是单孔柱状图,旨在快速生成涵盖勘察工程中钻孔的绝大部分信息,以供研究人员分析。完整柱状图的生成效果如图4所示。

4 结语

通过本程序模块开发,利用ADO.NET与GDI+相结合,以ACCESS数据库作为数据源进行交互,实现了钻孔柱状图的自动生成,可比较现有的柱状图成图的低效率,低精度以及分享性不足等缺点,缩短了绘图时间,简化了图件绘制程序,解决了一般编程制图过程中绘制缓慢以及意外效果等问题,并对地质图例的填充及薄层处理等进行探讨阐述。对实现钻孔柱状图成图标准化与规范化,以及其它测绘研究领域(如水文钻孔综合柱状图,测井曲线图等)的柱状图绘制技术进一步拓展具有较好的借鉴性意义。

但该程序的也存在不足之处:虽然该程序编制与应用十分方便、简单,但是在数据录入和其它图件的集成应用方面还存在繁琐流程,有待于加强对数据管理与集成模式的优化改进。

摘要:针对勘测设计企业业务信息管理的具体需求,分析了勘察设计企业业务信息管理系统的主要功能,建设的系统主要包括项目管理、合同管理、费用管理及系统管理等功能;在此基础上,阐述了系统的开发原则、应用效果和特点。

关键词:勘察设计企业,合同管理,费用管理,设计与开发

参考文献

[1]贾柳静.地质剖面数据库管理及自动成图系统的研究与设计[D].中国地质大学(北京),2006年.

[2]许哲平,陈建强,迟文学.基于Delphi7和CoreDraw 9VBA的钻孔柱状图自动成图系统[J].桂林工学院学报,27(1),81-85.

[3]郑洁红,吴名彬.工程地震钻孔柱状图的微机绘图系统[J].华南地震,1998,18(2):72-77.

[4]牟乃夏,梁春利,张灵先,等.基于WebService的钻孔柱状图网络成图系统研究[J].金属矿山,2010,2,92-116.

[5]解华明,陈守余.基于MAPGIS的钻孔柱状图绘制软件的编制[J].物探化探计算技术,2004,26(1),85-90.

[6][美]内格尔,伊夫杰等.C#高级编程[M].李敏波译.北京:清华大学出版社,2006:204-205.

[7][美]怀特.GDI+程序设计[M].杨浩,张哲峰译.北京:清华大学出版社,2002:18-21.

[8]迟文学,陈建强,许哲平等.钻孔柱状图中缓冲线绘制技术[J].地质科技情报,2006,25(5),2-5.

[9]陈文杰,应轶.第四系钻孔柱状图成图系统的设计与实现[J].地矿测绘,2007,23(4),12-16.

GDI+ 篇5

缸内直喷技术在提高燃油经济性、降低排放等方面具有很大优势,但其将燃油以较高压力喷入气缸,导致局部混合气过浓和燃油碰壁,造成尾气颗粒物排放在质量浓度和数量浓度上均有所增加[1,2,3]。所以,对直喷汽油机喷雾碰壁现象的研究具有十分重要的意义。

为了研究液滴-壁面的作用关系,文献[4]对单液滴水滴撞击壁面的现象进行了研究。基于其研究结果,文献[5]将液滴-壁面的相互作用归纳为粘附、反弹、射流几种典型现象,并总结了简化模型。文献[6]研究了水滴撞击深水边界层的现象,对能量损失与反弹速度进行校正。文献[7]使用乙醇蔗糖水溶液进行了单液滴碰撞冷态壁面的试验,捕捉二次液滴特性,并发展了基于试验的经验模型。文献[8]研究了旋流喷嘴喷雾撞击金属壁面的现象。文献[9]在定容弹内放置真实活塞,对多孔喷油嘴喷雾撞击活塞表面进行了高速摄影观测。文献[10]对现有喷雾碰壁模型进行了计算对比,发现现有模型对直喷汽油机喷雾的适用性还需要验证。文献[11,12]研究发现,喷雾碰壁现象受到喷油压力、环境压力、壁面温度、壁面粗糙度、壁面形状及孔壁距离等因素的影响,由于运行条件的差别,针对柴油机的研究并不完全适用于直喷汽油机。同时,文献[13,14]的研究表明,单液滴的碰壁现象与油束整体液滴的碰壁现象不同,燃油喷雾碰壁还需要开展进一步的研究。

本文中使用相位多普勒激光测试系统研究不同壁面条件下,近壁面处喷雾液滴的粒径分布与法向速度分布特点,并为数值模拟提供试验依据。

1 试验系统

1.1 激光测试系统

本文中采用相位多普勒激光测试系统(phase Doppler analyzer,PDA)研究近壁面处喷雾液滴的粒径与法向速度分布,研究所使用的喷油器为某款直喷六孔喷油器,针对其中一束喷雾进行测量。

激光测试系统包括燃油喷射系统和相位多普勒测试系统。燃油喷射系统由高压蓄能器、控制电路、计算机、喷油器固定支架和喷油器等组成。相位多普勒测试系统示意图如图1所示。系统参数见表1。

测试过程中,三种波长的激光由发射器照向喷雾,喷雾粒子通过测试位置并将激光折射,接收器吸收折射光信号并记录液滴的三维粒径与速度信息。发射探头和接收探头固定在全自动的三维移动系统L型导轨上,可保证光路系统稳定性。

1.2 喷油器改造

为了研究单束喷雾的粒径和速度分布并排除其他五孔的干扰,对其进行密封,将原喷油器改造为单孔喷油器。在油轨压力为10.0MPa的条件下进行喷雾试验,喷雾照片如图2所示。喷油器密封完好,单孔喷油正常且其余五孔不漏油。

文献[15]研究表明喷孔截面处燃油出口流速与出口面积、燃油喷射压力等因素存在以下关系:定义参数X为喷孔截面出口处空气核面积与喷孔面积之比,燃油薄膜速度U为:

式中,p1、p2分别为燃油喷射压力和环境压力;ρ1为燃油密度;KV为喷嘴的速度系数。

式中,C为一常数。由上述公式可知,相同喷油器堵孔前后喷孔面积变化,X值增大导致KV值改变,从而使出口速度发生改变。根据式(1),通过调整燃油喷射压力,可以实现出口处速度差的补偿,从而近似达到原喷油压力下的喷雾特性。因此,将单孔喷油器在不同压力下的贯穿距与原喷油器进行对比,获得单孔喷油器与原喷油器的对应压力关系。见表2。

原喷油器油轨压力10.0MPa与单孔喷油器油轨压力4.5MPa条件下的贯穿距离对比情况如图3所示。

2 试验方法

由于PDA测量方法为单点测量,根据SAEJ2715[16]试验标准的规定,设置喷雾油束的测量位置,进而通过统计方法获得喷雾的整体情况。

试验过程中保持喷雾的轴线方向垂直向下。试验条件见表3。壁面温度通过电加热丝与温度传感器进行控制,在试验过程中保证温度误差在±5℃范围内,润滑油膜厚度通过质量差法进行控制,通过涂抹润滑油前后平板的质量差获得润滑油总质量M,由平板面积S估算油膜厚度为h=M/S。

试验包括自由喷雾测试和喷雾碰壁测试,自由喷雾条件下油轨压力为7.0MPa,测试喷孔出口下方30、40、50、60mm轴线位置处的粒径与速度。

表4为喷雾碰壁的测试条件,各个截面均由轴线向外依次测量至喷雾边缘。

为了更好地表达测量结果,定义如图4所示的xoy坐标系,y轴为喷雾轴线,y=0平面为喷孔出口的水平面,如测点(2,28)指的是喷孔出口下方28mm截面上距喷雾轴线2mm的测量位置。

3 试验结果与数据分析

本文中重点关注不同测试条件下的粒径概率分布、特征粒径及对碰壁特性影响较大的法向速度。特征粒径Dv10、Dv50、Dv90分别指的是体积累计分布百分数达到10%、50%和90%对应的直径。

3.1 喷雾碰壁对喷雾特性的影响

3.1.1 干壁面喷雾碰壁对喷雾粒径概率分布的影响

图5和图6分别为(0,28)处和(0,48)处自由喷雾与干壁面条件下喷雾碰壁粒径概率分布对比。可以看出,自由喷雾与喷雾碰壁条件下液滴的粒径分布整体接近,粒径范围集中于30μm以下,大部分液滴粒径在10μm以内,形态呈单峰Rosin-Rammeler分布,如图5(a)所示。

3.1.2 干壁面喷雾碰壁对特征粒径的影响

图7和图8分别为(0,28)处和(0,48)处自由喷雾与碰壁条件下的特征粒径对比。可以看出,(0,28)处自由喷雾和喷雾碰壁条件下特征粒径不同,喷雾碰壁时粒径水平整体下降;而(0,48)处自由喷雾和喷雾碰壁条件下特征粒径发展比较接近。

喷雾碰壁后,(0,28)处与(0,48)处的液滴粒径变化的不同特征反映了液滴入射速度对碰壁后破碎过程的影响。(0,28)测点处碰壁位置为喷孔出口下方33mm截面处,碰壁位置距喷嘴出口较近,液滴速度较大,喷雾碰壁的初始动量较大,因此当液滴碰撞壁面时,液滴的破碎效果较好,反弹动量较大,使喷雾碰壁后的液滴粒径大幅减小。

(0,48)测点处碰壁位置为喷孔出口下方53mm截面处,碰壁位置距喷嘴出口较远,喷雾发展至该位置时速度有所减小,碰撞液滴的初始动量减小,因此当液滴撞击壁面时,液滴的破碎效果可能有所减弱,同时,由于入射动量减小,反弹动量相应减小,可能造成一部分液滴没有发生反弹,而是吸附在壁面,因此测量所得的液滴粒径变化不大。

3.1.3 干壁面喷雾碰壁对喷雾粒径径向分布的影响

图9为y=28mm截面处自由喷雾和喷雾碰壁条件下喷雾粒径径向分布对比(x=0,2,4,6,8)。图10为y=48mm截面处自由喷雾和喷雾碰壁条件下喷雾粒径径向分布对比(x=0,2,4,6,8,10,12)。

y=28mm处,自由喷雾条件下,由轴线向外粒径呈单调减小趋势,Dv50和Dv90骤降的位置不同,Dv50比Dv90其骤降区间出现得更早,表现为x由2mm到4mm处Dv50急剧减小而Dv90基本保持不变,x=6mm处液滴粒径整体较小。由该分布特点可知,x=2mm时测得Dv50与Dv90的值比较接近,即喷雾中心区域存在粒径较大的液滴,原因是中心区域喷雾浓度较浓,液滴与空气的相互作用相对边缘较弱,破碎与蒸发过程较弱。

喷雾碰壁条件下,液滴粒径由轴线向外呈曲折增大趋势。与自由喷雾条件相比,喷雾中心区域(x由0到4mm)的喷雾液滴粒径减小,x=0与x=2mm处,Dv90降至60μm以内,产生这一结果的原因可能是碰壁对喷雾液滴的破碎有促进作用。这一影响在喷雾的中心区域表现尤为明显,可能是因为中心区域的液滴动量方向主要向下,使得这一部分液滴的垂直入射动量比喷雾边缘液滴较大,因此获得了更好的破碎效果。喷雾边缘液滴尺寸趋于增大,分析其原因可能是液滴的碰撞合并现象在该位置表现得较为显著。

自由喷雾条件下y=48mm截面处径向粒径发展具有一定的随机性,原因可能在于y=48mm界面距喷孔出口相对较远,随着喷雾不断向前发展,喷雾液滴的速度有所下降,喷雾液滴与空气之间的相互作用及蒸发过程发展得更加充分,因此液滴的粒径与上游相比更加均匀。

碰壁条件下,y=48mm截面特征粒径表现为先减小再增大,到喷雾边缘急剧减小。与自由喷雾条件相比,喷雾碰壁条件下的粒径径向特性表现为:轴线与边缘的中间区域粒径减小明显。喷雾碰壁使粒径的径向特性产生了变化。

3.1.4 干壁面喷雾碰壁对喷雾法向速度分布的影响

图11为(0,28)处自由喷雾和喷雾碰壁条件下的法向速度分布对比。图12为(0,48)处自由喷雾和喷雾碰壁条件下法向速度分布对比,设向下为正方向。

28mm截面处整体上看,轴线位置处液滴的法向速度分布呈现出双峰分布:第一个峰出现在0附近,峰值范围较窄;第二个峰出现在较大的速度区域,峰值范围较大,峰值两侧近似为对称分布。

自由喷雾条件下,28mm截面处16%的液滴速度约为0m/s,而另一部分以50m/s为对称中心,形态接近正态分布。速度约为0的液滴可能由喷雾的卷吸、扰动及空气阻力对液滴动量的削减造成。

碰壁条件下,28mm截面处0m/s附近液滴比例上升至23%左右,而速度范围在20m/s附近的液滴概率很低,速度分布出现了“两级分化”的现象,呈对称分布,其峰值中心转移至70m/s附近,相比自由喷雾有所增加。速度约为0的液滴增多,同时,速度小于0(速度方向向上)的液滴比例有所增加。这反映出壁面对液滴速度的影响,由于测量位置在碰壁位置上方5mm处,因此许多反弹液滴到达该位置时的速度已经大幅减小,再加上碰壁过程中的能量耗散,使得其速度接近于0m/s。

相比于(0,28)处的法向速度分布,(0,48)处的法向速度分布中对称分布的峰值有所降低,(0,28)处峰值对应的液滴法向速度约为50m/s,而(0,48)处峰值对应的液滴法向速度约为40m/s,这反映出喷雾发展过程中的能量耗散,使得液滴整体速度有所下降,0m/s附近的液滴比例相比于(0,28)处有所增加也反映出这一影响。

对比(0,48)处的喷雾碰壁与自由喷雾法向速度分布,喷雾碰壁条件下速度在0m/s附近的液滴比例有所减小,速度小于0(速度方向向上)的液滴比例有所增加。这反映出壁面对喷雾液滴的反弹作用:一方面,速度较低的入射液滴由于碰撞能量较低而更多地吸附在壁面,造成0m/s附近液滴比例下降;另一方面,入射速度较大的液滴由于碰撞能量较大而反弹,造成小于0的液滴比例增加。

3.2 壁面温度对喷雾特性的影响

3.2.1 壁面温度对喷雾粒径概率分布的影响

壁面加热条件下,两个位置的粒径分布改变表现为相同趋势,图13和图14为(0,28)处和(0,48)处喷雾碰撞热壁面(温度为393K)条件下喷雾粒径概率分布对比。

与图5(b)和图6(b)相比,壁面加热时,两个位置处的绝大多数液滴粒径集中于10μm以下的范围。这主要是因为壁面加热条件下,壁面附近的空气被壁面加热,促进了喷雾液滴的蒸发,使得液滴粒径大幅度减小;同时,壁面温度较高时,可能使液滴的碰撞机理由于壁温较高而发生改变,当壁面温度升高时,液滴碰壁后的破碎反弹现象会加强。试验条件下的壁面温度远高于常温壁面,液滴更具有产生破碎反弹的趋势,这也可能是导致液滴粒径大幅度减小的原因。

3.2.2 壁面温度对特征粒径的影响

图15和图16分别为(0,28)处和(0,48)处不同壁面温度条件下的特征粒径对比。

(0,28)处差异显著,而(0,48)处基本相同。(0,28)处,壁面加热条件下粒径较常温条件大,由3.1节中的分析可知,液滴在28mm截面处速度较大,液滴的入射动量较大,因此碰壁后反弹的趋势更大,这可能导致测量位置处产生了入射液滴与反弹液滴的合并现象。此外,相对于常温壁面,壁面加热条件对液滴的反弹产生了促进作用,这可能会增大入射液滴与反弹液滴的合并效果,从而使得加热条件下液滴粒径有所增大。这一点会在下文中结合液滴的法向速度分布做进一步说明。

(0,48)处,由于喷雾液滴的速度有所下降,其碰壁液滴的入射动量有所降低,反弹效果不如(0,28)处明显,使得入射液滴与反弹液滴的合并效果有所减弱,因此壁面温度对(0,48)处特征粒径的影响不是十分显著。

3.2.3 壁面温度对喷雾粒径径向分布的影响

图17和图18分别为y=28mm与y=48mm截面处壁面加热条件下喷雾粒径径向分布。

与图9(b)对比,y=28mm截面壁面常温时特征粒径随喷雾轴线向外发展逐渐增大,而壁面加热时为相反的特征,特征粒径由轴线向外逐渐减小。

对比图10(b)与图18,y=48mm截面处喷雾碰壁与热壁面条件粒径径向分布也体现出较大差异。碰壁条件下Dv50由轴线向外侧呈减小趋势;而热壁面条件下Dv10与Dv90分别变化不大,Dv50在一定范围内波动。

壁面加热时,喷雾的径向分布范围有所减小,y=28mm处,常温壁面喷雾范围达到x=8mm处,而壁面加热条件下,x=8mm时液滴粒径已经很小,已到达喷雾边缘;y=48mm处常温壁面时喷雾范围达到x=12mm处,而壁面加热条件下喷雾范围仅仅达到x=10mm处。这反映出壁面加热条件对喷雾边缘液滴的雾化蒸发起到显著的促进作用。

3.2.4 壁面温度对喷雾法向速度分布的影响

图19和图20分别为(0,28)处和(0,48)处壁面加热条件下法向速度分布。

28mm截面壁面常温条件下,轴线位置处液滴的法向速度分布呈双峰分布:第一个峰出现在0附近,峰值范围较窄;第二个峰出现在70m/s附近,峰值范围较大,峰值两侧近似为对称分布。

28mm截面壁面加热条件下,50%的液滴其速度范围在0以下,即速度方向向上,其法向速度分布的形态出现了明显不同,法向速度分布集中于0附近,而大于20m/s的粒径所占比例极少。这反映出壁面温度对28mm截面喷雾液滴速度的影响。由前文分析可知,28mm截面附近的喷雾液滴运动速度比48mm截面附近快,在壁面加热条件下,当液滴以较大的动量碰壁,其反弹效果比常温碰壁更加显著,导致液滴运动速度向上。由前文可知,壁面加热条件下(0,28)处粒径与常温壁面相比较大,这可能正是因为壁面加热条件下,大部分液滴速度方向向上,与入射液滴产生了碰撞合并。这说明壁面温度对于28mm截面处的液滴发展具有重要的影响,高温壁面可以促进碰壁液滴的喷雾反弹与破碎。

48mm截面从法向速度分布的形态来看,壁面加热与常温条件下的法向速度分布比较接近,两个峰值出现的位置没有明显变化,但壁面加热时0附近及小于0(速度方向向上)的液滴比例明显增大。这一方面反映出较高温度对液滴碰壁反弹破碎的促进作用,另一方面也说明,由于(0,48)处比(0,28)处距喷嘴出口较远,喷雾液滴速度有所下降,入射动量有所下降,尽管壁面加热强烈促进了液滴的反弹,但是并没有达到28mm截面处的效果。由此可知,距离喷孔位置与壁面温度都是影响喷雾碰壁发展的关键因素。

3.3 干湿壁面对喷雾特性的影响

3.3.1 干湿壁面对喷雾粒径概率分布的影响

(0,28)处湿壁面条件下喷雾粒径概率分布如图21所示,体现了壁面存在初始机油膜条件对喷雾碰壁特性的影响,在此主要对应发动机缸套上的喷雾碰壁现象。

与图5(b)相比,喷雾液滴的粒径分布产生了较大变化,与干壁面条件相比,峰值粒径趋近于0,10μm以上的液滴概率有所增加,分布形态与自由喷雾的情况有所不同,呈现出比例分布的趋势。这说明湿壁面条件对于喷雾碰壁存在较大影响,壁面存在初始油膜时,液滴碰撞的能量耗散更多,液滴可能吸附壁面机油而粒径增大。

3.3.2 干湿壁面对特征粒径的影响

图22为(0,28)处干湿壁面条件下的特征粒径对比。湿壁面粒径较干壁面较大,说明湿壁面条件下存在粒径较大的液滴,这可能是由于反弹液滴夹带了壁面的润滑油所致。

3.3.3 干湿壁面对喷雾粒径径向分布的影响

图23为y=28mm处湿壁面条件下喷雾粒径径向分布。与图9(b)相比,干壁面径向发展为由喷油器轴线向外增大的趋势,而湿壁面条件呈现出下降趋势。

3.3.4 干湿壁面对喷雾法向速度分布的影响

图24为(0,28)处湿壁面条件下法向速度分布。与图11(a)相比,湿壁面条件下,速度小于0(方向向上)的液滴比例增大,且30m/s附近的液滴比例很小,这从一定程度上反映了初始油膜对于喷雾液滴碰壁特性的影响:一方面,具有初始油膜的壁面在液滴碰壁时对液滴的能量耗散增强;另一方面,部分液滴发生反弹、飞溅,可能会从壁面带走部分机油。这两种作用共同影响了喷雾液滴的碰壁特性。

4 结论

(1)壁面对喷雾28mm截面处液滴分布影响很大,着重表现于特征粒径径向发展和液滴法向速度分布。自由喷雾条件下特征粒径径向分布由轴线向外呈减小趋势,而碰壁条件下呈增大趋势。对于法向速度分布的影响着重表现为0m/s附近的液滴比例增加,高速区域峰值速度增大,这反映出壁面对喷雾液滴的反弹作用。

(2)壁面加热条件促进了液滴蒸发与液滴反弹,其影响主要表现在粒径概率分布、特征粒径径向发展与液滴法向速度分布方面。壁面加热条件下,绝大多数粒径在10μm范围内;特征粒径径向分布由轴线向外呈减小趋势;而法向速度分布表现为大多数液滴的速度集中在0附近,接近50%的液滴速度方向向上。

(3)湿壁面对喷雾产生的影响主要表现在粒径概率分布、特征粒径径向发展与液滴法向速度分布方面。湿壁面条件下,液滴的粒径分布产生了形态变化,呈现出比例分布的形态;特征粒径径向发展由干壁面时轴线向外增大的趋势变为先减小后略有增大的趋势;而10~30m/s速度范围内的液滴数量与干壁面条件相比明显减少。

(4)喷雾碰壁位置对于喷雾液滴特征分布有显著影响,随着喷雾的发展,距离喷嘴越远的位置,喷雾的粒径分布越发趋于均匀,各条件下的差异表现得越不明显。

摘要:为了研究直喷汽油机喷雾碰壁可能导致的机油稀释与碳烟排放增加问题,对某款直喷汽油机喷油器进行改造,使用相位多普勒激光测试系统(phase Doppler analyzer,PDA)研究了不同壁面条件下,近壁面处喷雾液滴的粒径分布与法向速度分布特点。研究结果表明:碰壁过程对距壁面较近的液滴径向发展有显著影响,自由喷雾表现为由轴线向外液滴特征粒径减小,而喷雾碰壁则为增大趋势;壁面温度对液滴粒径概率分布和法向速度分布影响显著,壁面加热条件下粒径集中于10μm范围内,而绝大多数液滴法向速度趋近于0;壁面干湿条件的影响主要表现在粒径概率分布、特征粒径径向发展和法向速度分布,粒径概率分布形态产生变化,特征粒径径向发展呈现为由轴线向外先减小后略有增大的趋势,法向速度在10~30m/s范围内的液滴数量明显减小。此外,碰壁位置是影响液滴分布的关键因素,碰壁位置距喷嘴越远,液滴粒径分布越趋向均匀。

GDI+ 篇6

基于数据库快速绘制油田开发常用图幅, 是油田开发动态分析的基础工作, 也是油藏工程应用软件系统的常用功能。但以往由于使用的编程语言不同、数据结构变化、后期功能扩展等原因, 使得绘图软件出现多次重复开发的情况。针对这种情况, 在编写《勘探开发信息服务系统》中的油田开发动态分析图幅绘制模块的过程中, 充分考虑了上述要求, 通过分析图件的图元构成, 本着数据访问与图形绘制尽量分离的设计思路, 基于GDI+和Webservice技术设计实现了绘图Web服务应用程序。实践证明, 该程序可提供开采曲线、产量构成曲线、产出剖面、注入剖面四种图件的动态绘制, 供多系统调用, 避免了同一功能的重复开发;同时为数据源变更、绘图功能扩充预留了空间, 减少了二次开发的工作量;也为其它同类软件的开发摸索一条切实可行的方法。

1 实现思路

基于数据库的动态绘图过程为:根据指定参数从数据库中读取数据, 有些图幅还需进行数据计算, 然后基于数据按特定算法绘制并返回图形[1]。考虑该绘图程序需被多系统调用、减少对特定数据库结构的依赖、避免和减少二次开发的工作量等需求, 将绘图功能分为绘图和数据处理两部分, 绘图类库是核心, 完成图形绘制, 数据处理类库起辅助作用, 负责读取、计算数据。

程序采用C#编写, 数据处理类库使用ADO.net访问数据库, 绘图类库使用GDI+根据访问的数据绘制图幅。使用如下技术或方法, 达到三个目的:

(1) 分析图件的图元构成, 经逐级抽象设计了绘图类库, 同时在绘图类库中使用自用数据结构, 使绘图类库对于数据库结构变化、功能扩充有较强的适应性, 二次开发工作量较少。

(2) 采用GDI+技术编写了绘图方法, 实现了产量构成图 (鸡爪图) 等四种图幅的绘制。

(3) 应用Webservice技术, 将绘图类库和数据处理类库封装后发布, 实现了绘图功能供跨编程语言、跨平台供多系统调用。

2 绘图类库设计与实现

2.1 类库设计

需要绘制的图件包括生产曲线、产量构成曲线、产出剖面、吸水剖面四种, 分属折线图、特殊面积图、柱状图三种类型。但从构成图形的图元看, 构成图件的图元可分为两大类, 一是基本图元, 是构成图像的最基本元素, 如点、线、多边形。二是组合图元, 组合图元是个容器, 是由基本图元组成的复杂的图元, 其内部包含了多个图元, 这些图元可以是基本图元, 也可以是组合图元[2,3]。

因此设计类库如图1所示, 包含三个层次。

(1) 图件基类:所有基本图元及组合图元均派生自该基类, 抽象了所有图元的共同特性, 包括绘制边界参数、画笔及画刷的属性、样式、控制是否绘制的参数, 并包含draw () 、add () 等虚方法。

(2) 组合图元:包含图类 (Map) 、标题类 (Title) 、坐标轴类 (Map Coord Line) 、曲线类 (Map Coord) 、基本图元基类 (Map Obj) 等, 其中曲线类是图件坐标系中绘制出的曲线, 是整个图件的核心。这些类除了继承基类的公共属性, 还包括样式、数据序列、图元对象序列等成员。组合图元类中的draw () 方法主要完成坐标转换及图元序列设置, 并遍历图元序列, 调用基本图元的绘制方法, 即真正绘制图形是由基本图元来实现。组合图元的draw () 方法受图件影响, 即曲线类中针对产量构成图 (鸡爪图) 、剖面图等的成图要求, 可针对每类图写多个draw () 方法;而基本图元的绘制与图件的种类无关。

(3) 基本图元:包含点类 (obj Point) 、线类 (objLine) 、多边形类 (obj Poly) 三种, 实现其draw () 方法, 完成点、线、多边形的绘制。

这样设计的好处是便于修改和扩展, 例如要增加选中功能, 只需在图件基类增加select () 虚方法, 在组合图元中实现select () 方法对图元序列根据鼠标坐标遍历, 最后在基本图元类中实现select () 换方式重绘以表示被选中即可, 不需要修改其他部分代码。

同时, 为了减少对于特定数据库类型或结构的依赖, 在绘图库中设计了数据类Raw_data, 并声明Raw_data类的数组来记录从数据库中查询到的数据, 同时设计数据说明类Raw_data_meta, 用于说明Raw_data中记录的每列数据类型、数据项名称等, 而具体数据查询和处理由数据处理类完成。这样即使数据库结构变化或数据库类型变化, 只需提供给绘图类的数据是Raw_data类型的, 绘图类就可绘制出图形。

2.2 实现方法

在实现上, 类库采用C#编写, 绘图应用GDI+。GDI+ (Graphics Device Interface, 图形设备接口) , 是将应用程序与图形硬件隔离, 从而允许开发人员创建与设备无关的应用程序。它以继承类的方式, 通过调用GDI+类提供方法, 此方法又反过来调用相应特定设备的驱动程序, 进而实现图形在屏幕或其他特定设备上的显示[4]。GDI+提供的服务分为3个大类:二维矢量图形、图像处理和版式[5]。这里主要使用GDI+二维矢量图形的服务, 绘图平面由类Graphics完成, 所有的绘图操作都是通过调用Graphics的方法实现。

根据类库设计, 坐标轴、曲线等组合图元通过四种图的绘制算法设置图元系列, 再遍历图元序列基本图元, 调用基本图元的绘制方法, 通过将基本图元绘制完成整幅图的绘制。基本图元的绘制方法是整个绘图库的基础, 在点、线、多边形等基本图元类的绘制方法中调用GDI+, 使点、线、多边形在屏幕上绘制。GDI+的调用步骤为, 先创建image类的新对象, 即一个Bitmap实例, 用以保存绘制的结果;然后构建Graphics对象, 形成GDI+绘图平面, 最后创建画笔或画刷, 使用画笔、画刷的绘制方法在绘图平面上绘制线条、形状和文本[2,6]。以点类为例, 编写基本图元类的绘图方法如下:

3 Webservice的编写

Webservice是一个平台独立的、松耦合的, 自包含的、基于可编程的Web的应用程序, 可以发布、定位、通过Web调用。逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式来访问[7]。

完成绘图类库和数据处理类库的编写后, 还需要封装成Web服务后进行发布, 其他系统才能够发现并访问。具体过程是新建项目选择Web服务应用程序, 添加绘图类库和数据处理类库的命名空间, 然后如常规编程一样编写方法即可, 例如产出剖面的绘制方法如下:

在设置返回参数时, 使用一个流对象返回绘制完成的图件。

4 应用实例

在油田数据中心《勘探开发信息服务系统》研制过程中, 系统应用了本次开发的Web服务, 该系统是C/S模式的, 采用Delphi开发。图2为该系统调用本绘图服务后, 系统接收并显示的注入剖面图, 直观的将单井历次测试结果在图形上展示。

5 结束语

(1) 采用GDI+编写的绘图Web服务, 实现了基于数据动态绘制图件的功能;经实际应用证明, 该程序可被不同编程语言编写的应用系统调用, 达到了绘图功能复用和共享的目的, 技术路线可行。

(2) 基于图元的绘图类库设计和实现, 相较于过程化的绘图代码, 更便于今后的修改和功能扩展;在绘图类库中使用自定义数据类存储数据, 可以减少因数据结构变化、数据存储变化带来的修改工作量。

(3) 在油田开发动态分析过程中, 还有与绘图类似的基于数据库的功能需求, 只要这些功能是相对独立并且方法固定的, 也可以像绘图这样编写成Web服务发布, 供油田多系统访问共享。

摘要:为了满足油田动态分析对基于数据库实时绘制常用开发图幅的需求, 重点在减少绘图软件对数据库结构的依赖、提升修改和功能扩充的灵活性方面进行研究, 在分析图件的图元组成基础上, 使用面向对象设计方法, 应用GDI+图形技术与Webservice技术开发了常用图幅绘图Web服务, 相较于传统绘图程序, 在可供多应用系统访问, 避免同一功能多应用系统重复开发等方面提高了水平。

关键词:GDI+,Webservice,图形编程

参考文献

[1]罗倩.基于GDI+的简易画图程序设计与实现[J].中国新技术新产品, 2010, 2:29.

[2]周方晓, 李昌华, 丁有军.用GDI+和面向对象设计方法构建交互式图形平台[J].微电子学与计算机, 2010, 10 (27) :165-169.

[3]张玲, 陈元春, 孙勇.基于GDI+的通用图形平台设计[J].计算机工程, 2005, 12 (31) :218-220.

[4][美]怀特.GDI+程序设计[M].杨浩, 张哲峰, 译.北京:清华大学出版社, 2002:18-21.

[5]李海君, 张耀文, 孙文浩.基于GDI+的钻井柱状图自动成图方法[J].中国科技信息, 2012, 20:65-66.

[6]俞家文, 陈空军, 高立群.基于GDI+和.NET组件技术的MIS系统动态绘图[J].微计算机应用, 2007, 5 (28) :552-555.

GDI+ 篇7

1 GDI+技术特点

GDI+是Windows XP中的一个子系统,它主要负责与显示屏幕和打印设备输出有关信息。GDI+已包含在Windows XP和Windows.NET服务器操作系统中。在除XP以外的其他Windows操作系统中使用GDI+,只需要在计算机上安装GDI+即可。GDI+主要提供了以下三个方面的功能[1]:

1)二维矢量图形程序设计:矢量图形的程序设计是指绘制可以由坐标系中的一组点确定的形状。这样的形状称为图元。在受控GDI+中,一个类对象或结构体表示一个图元。在.NET Framework中,二维矢量的程序设计分为两类:常规和高级两种。常规设计功能是在System.Drawing名称空间中定义的,而高级的则是在System.Drawing.Drawing2D名称空间中定义的。

2)图像处理:图像处理指对图像的查看和操作。在受控GDI+中,图像处理功能分为两类:基本的图像处理和高级的图像处理。基本功能是在Image类中定义的。Image类提供了加载、创建和保存图像的成员。Bitmap和Metafile类定义了显示、操作和保存位图和图元文件的功能。

3)版式:版式是指文本的设计和外观。GDI+提供了创建和使用字体的类,如Font、Font Family和Font Converter等,还提供了读取系统中所有安装的字体的类。程序员还可以在字体集中添加自定义的字体。此外,GDI+还提供了在其中封装了Windows打印的类,和扩展设计时用户界面(UI)逻辑和绘制功能的类[2]。

2 GDI+新特色

与传统的GDI相比,GDI+归纳起来主要有以下几方面的新特色:

2.1 渐变画刷(Gradient Brushes)[3]

GDI+允许用户创建一个沿路径或直线渐变的画刷,来填充外形(shapes),路径(paths),区域时,颜色就能够沿外形逐渐变化。如图1所示。

2.2 基数样条函数(Cardinal Splines)[4]

GDI+支持基数样条函数,而GDI不支持。基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。样条由一系列点指定,并通过每一个指定的点。由于基数样条平滑地穿过组中的每一个点(不出现尖角),因而它比用直线连接创建的路径更精确。图2是分别使用两种方法创建的图形,一个使用基数样条,一个使用直线。

2.3 持久路径对象(Persistent Path Objects)

在GDI中,路径属于设备描述表(DC),画完后路径就会被破坏。在GDI+中,绘图工作由Graphics对象来完成,可以创建几个与Graphics分开的路径对象,绘图操作时路径对象不被破环,这样就可以多次使用同一个路径对象画路径了。

2.4 变形和矩阵对象(Transformation&Matrix Objects)

GDI+提供了矩阵对象,使得编写图形的旋转、平移、缩放代码变得非常容易。一个矩阵对象总是和一个图形变换对相联系起来,例如,路径对象(PATH)的Transform方法,的一个参数能够接受矩阵对象的地址,它能够根据变换矩阵绘制路径。

2.5 可伸缩区域(Scalable Regions)

GDI+在区域(regions)方面对GDI进行了改进,在GDI中,Regions存储在设备坐标中,对Regions唯一可进行图形变换的操作就是对区域进行平移。而GDI+用世界坐标存储区域,允许对区域进行任何图形变换,如缩放等,图形变换以变换矩阵存储。

2.6 Alpha通道合成运算[2](Alpha Blending)

利用alpha融合,可以指定填充颜色的透明度,透明颜色与背景色相互融合,填充色越透明,背景色显示越清晰。如图3所示。

2.7 多格式图片支持[5]

GDI+除了支持BMP等GDI支持的图形格式外,还支持JPEG、GIF、PNG、TIFF等图像格式,程序员可以直接在程序中使用这些图片文件,而无需考虑它们所用压缩算法。

GDI+的所有新特色给程序员提供了一种简便的方法来完成GDI中琐碎的编程工作。从某种意义上说,GDI+是对GDI程序员的一种解脱。

3 如何使用VC++.NET实现GDI+编程

在Visual C++.NET中使用GDI+一般遵循下列步骤:

1)在应用程序中添加GDI+的包含文件gdiplus.h以及附加的类库gdiplus.lib。通常gdiplus.h包含文件添加在应用程序的stdafx h文件中,而gdiplus.lib可用两种进行添加:(1)第一种是直接在stdafx.h文件中添加下列语句:

(2)另一种方法是:选择"项目"->"属性"菜单命令,在弹出的对话框中选中左侧的"链接器"->"输入"选项,在右侧的"附加依赖项"框中键入gdiplus.lib

2)在应用程序项目的应用类中,添加一个成员变量,如下列代码:

ULONG_PTR m_gdiplus Token;

其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus::Gdiplus Shutdown来关闭GDI+。

3)在应用类中添加Exit Instance的重载,并添加下列代码用来关闭GDI+:

{Gdiplus::Gdiplus Shutdown(m_gdiplus Token);

4)在应用类的Init Instance函数中添加GDI+的初始化代码:

{Gdiplus::Gdiplus Startup Input gdiplus Startup Input;

Gdiplus::Gdiplus Startup(&m_gdiplus Token,&gdiplus Startup Input,NULL);

5)在需要绘图的窗口或视图类中添加GDI+的绘制代码。

4 结束语

GDI+是Microsoft Windows XP以及后续Windows操作系统的子系统,同时又是VC++.NET提供的一种新的简单、快速的图形图像开发技术。GDI+具有强大的图像功能,操作简单的优点,借助GDI+类库,可以很方便地实现专业的图像效果。

摘要:鉴于GDI技术具有功能简单、使用复杂的不足,使用GDI+技术进行图形图像处理会取得更好的效果。着重介绍GDI+技术的特点及其新特色,并总结得出在Visual C++.NET开发环境下使用GDI+开发图像处理软件的步骤和相应的程序代码。

关键词:GDI+,图形设备接口,Visual C++.NET,图形处理,相关代码

参考文献

[1]Chand M.GDI+图形程序设计[M].韩江,译.北京:电子工业出版社,2005.

[2]周鸣扬,曾洁玫等.GDI+程序设计实例[M].北京:中国水利水电出版社,2004.

[3]刘宏申,陈小平.GDI+及多格式图像的转化[J].微机发展,2004,14(11):40-42.

[4]陈本峰,苏琦.Windows GDI+的研究与应用[J].计算机应用研究,2003(3):56-59.

GDI+ 篇8

GDI多孔喷油器由于其在燃油计量精确性、雾化特性、缸内布置灵活性等方面的突出表现,逐渐成为汽车发动机技术的研究热点。发动机的混合气形成直接影响发动机的动力性、经济性和排放性,因此对GDI喷油器提出了更为严苛的要求。除均匀的孔内燃油流动率外,GDI喷油器还应具有理想的喷雾轨迹、喷雾锥角、雾化颗粒和贯穿距离。影响喷油器雾化性能的参数较多,国内外学者对其雾化特性开展了大量的研究:文献[1]根据实际多孔喷嘴尺寸研制了可视化光学喷嘴,并通过高速摄影研究了不同燃油种类、温度、压力等对喷孔内部气穴及外部喷雾特性的影响;文献[2]分别使用大涡模拟和湍流时均流的雷诺方法对GDI多孔喷油器喷孔内流动及喷雾特性进行研究,并与高速摄影试验结果进行比较;文献[3]利用激光吸收散射技术研究了双孔喷射夹角对喷雾贯穿距离和锥角的影响,得到了不同温度及压力状态下的喷雾液相及气相分布特性;文献[4]采用喷油器喷雾特性数据标定了CFD喷雾模型,并研究了喷雾锥角、喷孔布置对缸内混合气均匀性的影响。

国内针对GDI喷油器的开发起步较晚,目前的研究还不够深入和系统。GDI喷油器的性能受到多因素影响,有必要对其工作机理进行试验和仿真,这也可为GDI喷油器的结构优化与改进提供理论基础。本文以某款GDI非对称多孔喷油器为研究对象,在工程分析软件FIRE的平台基础上对各喷孔内部流动和喷雾特性之间的关系进行数值模拟和分析,采用流量测试系统对GDI喷油器流量特性进行验证,并利用高速摄影技术对喷雾形态进行测试。

1 GDI喷油器喷孔结构

GDI喷油器在发动机上的布置受缸盖结构限制,为了改善混合气形成,要求其中心线与气缸和燃烧室中心线存在一定的倾角,故其各喷孔呈非对称布置,如图1所示。具体参数见表1。为了研究工作条件和喷孔的结构布置对喷雾型态的影响,本文在原喷油器基础上进行了变参数研究,主要研究了喷油压力、燃烧室压力、燃烧室温度和长径比这几个变量对喷雾特性的影响,参数值如表2所示。

2 流量与喷雾型态测试系统

为了研究内部流动特性与流量特性、喷雾特性之间的关系,采用如图2所示的测试系统对GDI多孔喷油器性能进行测试。该系统由流量和喷雾测试系统两部分组成,当测试流量时,将图2中的定容弹换为电子天平即可。系统主要由喷油器驱动仪、定容弹、弧光灯和恒温油箱等组成,采用燃油泵与氮气瓶分别控制喷油压力和背压。采用Olympus i-SPEED-TR高速数码摄像机对喷雾形态进行记录,其图像分辨率为1280×1024像素,曝光速度为每秒10 000幅。

采用激光粒度仪测量喷雾粒径大小,主要由激光器、扩束透镜与接收透镜、空间滤波器及光电探测器等部件组成。其主要依据衍射散射理论,由激光发生器发出光束,经过空间滤波器的光在扩束透镜的作用变成一束平行单色光;平行光通过测量区喷雾场时,在喷雾颗粒的作用下会产生散射现象;此时,接收透镜采集散射出来的具有相同方向的光束;光电探测器可将散射光能量转换为电信号,经过放大和模数转换后送入计算机,利用软件即可计算出被测颗粒的尺寸分布、平均粒径及颗粒浓度等。系统原理图见图3。

3计算模型与试验验证

3.1 网格划分与边界条件

通过Pro/E生成流动区域的实体模型,并进行计算网格划分,如图4所示。采用常用的湍流时均流的雷诺方程(RANS)对喷孔内部流动过程进行数值模拟,其中包括动量、质量及总焓的守恒方程[5]。湍流模型直接影响流场计算精度,考虑到喷油器的尺寸较小,在保证求解精度要求、稳定性及计算资源要求的情况下选用k-ε 双方程模型进行计算[6]。

燃油喷射研究的是在密闭定容室中的自由喷雾特性,故建立柱体定容室划分网格,根据喷雾特性试验得到的喷雾轮廓的大小,设定定容室直径为80mm,高度为100mm。为提高求解精度,对主要喷雾区域进行了细化,网格尺寸为1~2mm,网格总数为64万。喷雾仿真采用拉格朗日离散液滴法(DDM),其中蒸发模型采用Dukowicz模型,粒子交换模型采用Schmidt模型,破碎模型采用WAVE模型。入口以不同工作与结构参数下喷孔出口的质量流量数据作为边界条件,出口边界为燃烧室内气体压力。

3.2 流动模型验证

为保证流动模型的准确性,改变喷孔的进出口压力来进行流量试验,并将仿真与试验流量进行对比,对所建模型的仿真精度进行验证。仿真和试验参数如表3所示。图5为不同进口压力(pin)和出口压力(pout)仿真与试验的对比值。由结果可见,模型的仿真结果和试验结果基本吻合,最大误差小于5%,仿真结果可靠。

3.3 喷雾模型验证

为了准确分析内部流动特性与喷雾特性之间的关系,必须对喷雾模型进行验证。由于喷雾锥角和贯穿距离对油束在燃烧室中的空间分布影响很大,而粒径大小是评价雾化效果的一个重要指标,故选择喷雾形态发展规律、喷雾锥角、贯穿距离和雾化粒径这几个参数作为验证内容。

图6为喷雾形态试验与仿真的对比结果。由图6可见,试验与仿真的喷雾形态及发展历程相吻合,随着时间推移,喷油速率加快,贯穿距离变长。图7和图8为1ms时,试验与仿真的喷雾锥角及喷雾落点(离喷嘴下方80mm处)对比。由图7和图8可知,试验与仿真结果基本相同。取不同喷射压力,将贯穿距离和索特平均直径大小的仿真和试验进行对比,喷射压力为10MPa、燃烧室压力为0.1MPa时的对比如图9所示。由图9可见,仿真和试验结果接近。综上所述,喷雾形态在宏观及微观的仿真模拟上与试验结果较一致,此喷雾模型可以作为变参数的仿真基础。

(pin=10MPa,pout=0.1MPa)

4 仿真结果分析

4.1 喷油压力的影响

图10为不同喷油压力下的喷射雾化形态图。由图10可知,随着喷射压力升高,喷雾贯穿距离增大,喷雾粒径逐渐减小,且小粒径液滴的分布区域也不断扩大,雾化质量提高。这是由于喷射压力增大使喷孔出口处的燃油流动速度和压力提高,燃油的湍动能增加,促进了喷孔外部的燃油雾化。

由于喷孔倾角的大小不同,本文都将针对气穴现象最明显的喷孔1及平均流速最大的喷孔4进行流动特性的分析。图11和图12不同进口压力下的喷孔内流动特性。由于进口压力大,球阀的开度又达到最大,喷孔内的气穴现象已经比较明显,因此气穴的面积变化不大,但仍可以看出随着进口压力增加,气穴效应有所增强。气穴加剧使得孔内的湍流增强,液相流速明显增大,故油束的贯穿距离增大,雾化质量也更好。

4.2 燃烧室压力的影响

图13~图15为不同燃烧室压力下喷油器的喷雾特性。由图可知,随着燃烧室压力的增加,喷雾贯穿度显著减小。燃烧室压力较低时,油束呈中空圆锥形,由于此时燃烧室内的气体密度不大,油束边缘与空气的相互作用不强烈,故贯穿距离较大。随着燃烧室压力的增大,喷孔进出口之间的压力差减小,虽然气穴现象有所减弱,但喷孔内的燃油流动速度降低更明显,燃油喷出时的初速度和初动能减小。燃烧室压力较高时,室中气体密度增加,雾束前端受环境阻力增加,整个喷雾形状更为密集紧凑,贯穿距离减小。另外,环境气体密度的增加导致油滴蒸发困难,液滴间动量交换增强,喷射动能损失和迎风阻力增加,加剧燃油颗粒破碎,喷雾粒径减小。

4.3 燃烧室温度的影响

图17显示了不同燃烧室温度下喷雾形态的仿真计算值,此时喷油压力为10MPa,燃烧室压力为0.1MPa。由图17可知,喷雾贯穿距离随着环境温度的升高而增大,同时环境温度的升高导致喷雾粒径增大。这主要是由于燃烧室的温度升高,气缸内的空气密度减小而黏度增大,液滴在运动中受到的阻力减小,燃油颗粒破碎减少导致喷雾贯穿距离和喷雾粒径的增大。

图18为不同环境温度下距喷嘴下方80mm处水平切面上的燃空当量比分布,喷雾时刻均为2ms。燃烧室温度从293K上升到550K的过程中,喷雾液滴的蒸发速度不断加快,切平面上燃空当量比从0.5左右增加到1.5以上。燃空当量比的升高表明环境温度的升高对加快喷雾液滴的蒸发速度效果明显。因此,较高的温度有利于燃油的蒸发和可燃混合气的形成。

4.4 喷孔直径的影响

图19为不同喷孔直径下的喷雾雾化形态对比,此时喷油压力为8MPa。随着长径比增大,燃油喷射贯穿距离变长,喷雾粒径减小,这主要是因为随着长径比的增大,喷孔内的燃油流动速度会进一步增加。虽然气穴程度也会随着喷孔直径的减小而增大,使流通面积减小,但孔内流道相对越狭窄,其进口处流线与孔壁分离越厉害,即流量系数越小,促使局部流速进一步增大[8,9],故雾化效果更理想(图20、图21)。

4.5 喷孔长度的影响

图22是喷油压力为6MPa,喷孔直径一定,长径比分别为1.4、1.8 和2.5 时的喷雾形态。由图22可知,随着长径比的增加,雾束的贯穿度基本不变,只是小粒径液滴的数量有所减少。如图23所示,随着喷孔长度的增加,喷孔中的气穴区域长度也增加。这是由于,随着长径比的增大,液体区与气穴区之间的混合距离变长,气穴向中心液体区扩散,但程度变化不显著。受到喷孔内阻力的影响,喷孔长度增加,总流程损失也增大,但流速只略有下降,最终雾化效果的变化不大(图24)。

4.6 喷孔倾角的影响

图25为进口压力为10MPa、出口压力为0.1MPa下的喷雾形态俯视图。由图25可见油束1、2、6的贯穿距离更大,而油束3、4、5则含有较多的小粒径油滴。对照图26和图27中各喷孔气相体积分数和燃油流动速度分析原因可知,由于喷孔1、2、6的倾斜角较大,导致喷孔中燃油气相体积分数平均值较高,气穴现象较为明显;相反,喷孔3、4、5的倾斜角较小,喷孔内的流体不易与壁面发生流动分离,进口处有更多燃油可以保持原来的流动方向,使得该处燃油压降变小,燃油的平均流速更高且更均匀,雾化效果更好。

5 结论

(1)用工程软件FIRE对GDI多孔喷油器内部流动特性及喷雾特性进行数值计算,并利用高速摄影技术对仿真结果进行试验验证。结果表明:仿真分析与试验结果具有较高的吻合度,采用三维数值模拟方法可用于GDI多孔喷油器喷雾形态的变参数研究。

(2)研究了不同喷油压力、燃烧室压力、燃烧室温度等环境参数对喷雾形态的影响。结果表明:提高喷射压力可改善喷射雾化质量;燃烧室压力的提高会使燃油雾化效果变差;燃烧室的温度升高会加快喷雾的蒸发速度,有利于混合气的形成。

【GDI+】推荐阅读:

上一篇:《伏尔加河上的纤夫》下一篇:识别过程

本站热搜

    相关推荐