《基于GDI+技术的船舶电站同步表的设计与实现论文毕业.doc》由会员分享,可在线阅读,更多相关《基于GDI+技术的船舶电站同步表的设计与实现论文毕业.doc(40页珍藏版)》请在三一办公上搜索。
1、摘 要船舶同步表属于船舶电站对同步发电机进行并联的仪表,实际中利用船舶电站中对同步表的控制,并实现对待并发电机进行并车和船舶电站电网并联运行。本文介绍了同步表与同步发电机的并联的相关内容,同步表的工作原理,发电机的并联运行,以及GDI+的特点及功能,讨论绘图表面的特性,以及如何获得Graphics类的实例。GDI+对矢量绘制提供了很好的支持, GDI+这一系列的新特性,简化了矢量图形系统的开发,提高了开发效率。应用GDI+绘图技术和完全面向对象的C#语言,结合船用电表的具体特点,以在船舶自动化系统中具有代表性的几个组件为参考,阐述了GDI+在同步表设计中的应用,简单介绍了控件的制作过程,实现了
2、仪表控件的动态显示功能。本文对船用同步表的设计与绘制进行了深入的研究,采用GDI+技术对船舶同步表进行绘制与设计的步骤,同步表外观及同步表的运行,以实现对船舶电站中待并同步发电机的控制,以及并入电网实现并车。在现代船舶和未来船舶的技术中,微型计算机和微机应用技术都是极其重要和关键的部分,随着船舶自动化程度的不断提高,船舶机舱仿真的自动化在船舶机舱中得到广泛的应用,同样在工业生产中有许多各种各样的仪表, GDI+技术正日益扮演着越来越重要的角色,在图形设计上发挥着巨大的作用。关键词:船舶电站;同步表;GDI+;动态显示AbstractSynchronous table belongs to th
3、e ship power station synchronous generator for parallel instrument, in the actual use of ship power station synchronous control, and treatment and generator and car, realize the power grid parallel operation of the ship.Synchronization are introduced in this table and the related contents of the syn
4、chronous generator in parallel, the working principle of the synchronous table generator in parallel operation, as well as to the characteristics and functions of GDI +, discussed the characteristics of the drawing surface, and how to get the Graphics class instances. GDI + for vector map provides a
5、 good support, GDI + a series of new features, simplify the development of vector graphics system, improve the development efficiency. Application of GDI + drawing technology and fully object-oriented c # language, combined with the characteristics of Marine electric meter, as a representative sampl
6、e of several components in the ship automation system for reference, this paper expounds the GDI + in synchronous table design, the application of simple introduces the control of the production process, to realize the function of the dynamic display of the instrument control.Design and drawing of M
7、arine synchronous tables, carried on the thorough research, using GDI + technology to ship synchronous table for drawing and design steps, synchronous table appearance and the operation of the synchronous table, in order to realize the stay in the ship power station and the control of synchronous ge
8、nerator, and the power grid and car.In modern and future ship technology, microcomputer and computer application technology is extremely important and key part, with the continuous improvement of ship automation, automation of ship engine room simulation has been widely used in ship engine room, als
9、o has many various kinds of instrument in industrial production, GDI + technology is increasingly plays a more and more important role, plays a huge role in graphic design.Key Words: Ship power station;Synchronous table;GDI+;Dynamic display目 录前 言1第一章同步表与同步发电机简介31.1 同步表工作原理31.2 船用同步发电机并联运行41.2.1 船用同步
10、发电机的并联运行41.2.2 发电机并联运行的特点51.2.3 船舶同步发电机的并联运行的条件61.2.4 船舶同步发电机手动并联运行71.3 GDI+对于船舶建造与设计的迫切性9第二章 GDI+和自定义控制概述与GDI+绘图表面102.1 GDI+的意义102.2 GDI+和自定义控制102.3 绘图表面概述112.2.1 绘图表面的特性112.2.2 绘图表面颜色的结构112.2.3 Graphics类112.2.4 GDI+坐标系122.4 Pen和Brush类12第三章 船用同步表设计的理论基础153.1 自定义控件的基本原理153.2 创建一个简单的自定义控件15第四章 船用同步表的
11、设计与绘制过程184.1 同步表的外观184.2 同步表设计的相关源代码注释184.3 指示灯的旋转204.4 对设计结果的分析204.5 对设计结果的评价21第五章 对船用同步表设计结果的总结和展望225.1 结果的总结225.2 设计结果的展望235.3 结论23致 谢25参 考 文 献26附录 源程序27附录I 同步表源程序代码:27附录II 测试代码:31前 言同步表又称整步表,是用来指示待并机电压与电网电压间相位差、频率差及其方向的仪表,船用同步表大多采用电磁式的。根据产生旋转磁场的方式,电磁式同步表可以分为:两线圈交叉成90o的、两线圈交叉成60o的、三线圈式的、单相分相式的等。三
12、线圈电磁式同步表的结构原理见图。同步表是由定子与转子组成。定子上装设有在空间互成120o的3个绕组,用以产生旋转磁场。中间是转子部分,励磁绕组固定在底盘上本身不转动,用以产生脉动磁场。中央是转轴,转轴的上下各有一块同样大小的扇形铁片组成的Z形铁芯,转轴的上端有指针,转轴上无线圈,它的两头是通过宝石轴承加以固定,可以自由转动。同步表没有游丝和导电片,因此没有反作用力矩,指针可以360o自由转动。定子3个绕组通过电压互感器分别接在待并机组的U、V、W三相电压上,产生一个径向旋转磁场,其大小是固定的,随着时间的推移按顺时针方向作旋转运动。转子铁芯上励磁绕组通过电压互感器接在电网的R、S相上,这样在铁
13、芯的励磁线圈中就通过由电网电压RS所产生的单相交流电,从而产生了一个脉动磁场,脉动频率是由电网频率所决定。船舶电站是船上重要的辅助动力装置,供给辅助机械及全船所需电力。它是船舶电力系统的重要组成部分,是产生连续供应全船电能的设备。 船舶电站是由原动机、发电机和附属设备(组合成发电机组)及配电板组成的。发电机组是把化学能转化为电能的装置,是船舶电站最重要的装置。发电机组发出的电力是通过配电板来进行控制及分配。带动发电机运转的原动机一般为柴油机、汽轮机或燃气轮机,相应的发电机组称为柴油发电机组、汽轮发电机组或燃气轮机发电机组。蒸汽机船上的发电机组由蒸汽机驱动(有时用小型汽轮机驱动),但容量较小,以
14、供照明电源为主。在汽轮机船上,发电机组由汽轮机驱动,为全船电气设备提供电源。这种汽轮发电机组大部已系列化,容量从500千瓦到2500千瓦不等,可以自由选择。在柴油机船上,有23台发电机组,由单独设置的中速或高速柴油机驱动。容量据全船电动机械设备的数量确定,普遍采用400伏三相交流电,频率有50赫兹和60赫兹两种。为使船舶在各种不同工况下,如航行、作业、停泊、应急等情况下,都能连续、可靠、经济、合理地进行供电,船舶上常配置多种电站,主要有以下几种:(1)主电站,正常情况下向全船供电的电站。(2)应急电站,在紧急情况下,向保证船舶安全所必需的负载供电的电站。随着船舶自动化和计算机技术的广泛应用,使
15、船舶向着高度自动化的方向发展。在船舶自动化中,机舱自动化是整个船舶自动化中的一个重要环节,也是船舶制造业发展的总趋势。可以利用计算机技术实现某些船用仪表的特定功能,在实验室实现对船舶机舱的模拟功能,大大方便了日常学习和实验研究。设计的基于GDI+技术的船用仪表的设计与绘制,是从船用仪表的实际特性出发,利用.NET平台设计一个用GDI+绘制的仪器仪表,能够动态的实现其功能,并且只要稍加改变,就可以应用于其他仪表的设计。基于.NET Framework开发平台的GDI+技术作为图形设备的接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有的Windows程序的图形输出。实际设计中只需调用
16、GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成。GDI+使得图形硬件和应用程序相互隔离,从而可以应用GDI+绘图技巧和面向对象的C#编程语言来制作外观逼真且功能完善的仪表组件,而且灵活简单,本文就以船用仪表为例进行阐述其编程技巧及其在其他组件中的通用性研究。GDI+可以创建图形、绘制文本以及将图形图像作为对象操作,它能提供较好的性能并且易于使用,在Windows窗体和控件上呈现图形图像,而且GDI+中的图形对象不是孤立工作的,它们常常是综合在一起来绘制图形,GDI+在代码编写方面也简单得多,随着图形图像技术的进一步发展,基于.NET平台的GD
17、I+技术的前景必将是非常广阔的。利用GDI+技术创建一个表面对船舶同步表进行绘制与设计,来实现同步表在船舶电站中,控制待并发电机的并联运行,利用GDI+技术实现某些船用仪表的特定功能,在实验室实现对船舶机舱的模拟功能。第一章 同步表与同步发电机简介1.1 同步表工作原理同步表又称整步表,是用来指示待并机电压与电网电压间相位差、频率差及其方向的仪表,船用同步表大多采用电磁式的。根据产生旋转磁场的方式,电磁式同步表可以分为:两线圈交叉成90o的、两线圈交叉成60o的、三线圈式的、单相分相式的等。如图1-1-1所示图1-1-1 电磁式同步表结构原理示意图(a)同步表结构示意图;(b)同步表电路原理图
18、三线圈电磁式同步表的结构原理见图。同步表是由定子与转子组成。定子上装设有在空间互成120o的3个绕组,用以产生旋转磁场。中间是转子部分,励磁绕组固定在底盘上本身不转动,用以产生脉动磁场。中央是转轴,转轴的上下各有一块同样大小的扇形铁片组成的Z形铁芯,转轴的上端有指针,转轴上无线圈,它的两头是通过宝石轴承加以固定,可以自由转动。同步表没有游丝和导电片,因此没有反作用力矩,指针可以360o自由转动。定子3个绕组通过电压互感器分别接在待并机组的U、V、W三相电压上,产生一个径向旋转磁场,其大小是固定的,随着时间的推移按顺时针方向作旋转运动。转子铁芯上励磁绕组通过电压互感器接在电网的R、S相上,这样在
19、铁芯的励磁线圈中就通过由电网电压RS所产生的单相交流电,从而产生了一个脉动磁场,脉动频率 是由电网频率所决定。如图1-1-2所示图1-1-2 同步表转子磁通图 这一脉动磁场的方向,原来是轴向的,由于扇形铁片的导磁系数很高,绝大部分磁力线因扇形铁片而由轴向改变为径向脉动磁场,如右图所示。这样在同步表的空间就有一个铁芯励磁线圈产生的径向脉动磁场中B和一个定子三相绕组产生的径向旋转磁场G。它们的频率分别为电网频率fB与待并发电机的频率fG。此两磁场的合成磁场吸引着扇形铁片,使扇形铁片停留在合成磁场最大的位置上,这也就决定了指针的位置。由于在定子和转子电路中均串人有很大的电阻R1与R2,这样就可把电路
20、近似地看做电阻性电路,即同步表定、转子线圈中流过的电流与所加的电压基本上是同相位。 若待并发电机的频率fG超过电网频率fB,则电网的脉动磁场B达到最大值时,旋转磁场中G在空间的位置将每转一周要多转过一个角度。也就是待并发电机每一电压周期要吸引扇形铁片与指针顺时针方向转过一个角度。因此只要待并机的频率高于电网的频率,同步表的指针就不停地顺时针方向转动,即指针向“快”的方向旋转。 同理,当待并发电机的频率fG低于电网频率fB,则同步表的指针将向逆时针方向旋转,即指针向“慢”的方向旋转。因此可以根据同步表指针转动方向来判断差频的方向。另外,同步表指针是按差频角速度进行旋转的。1.2 船用同步发电机并
21、联运行1.2.1 船用同步发电机的并联运行 现代船舶大多采用交流电站,随着船舶吨位、电气化、自动化程度的提高,电站容量也日益增加。为了满足船舶供电的可靠性和经济型,一般的船舶电站均配置了两台以上的同步发电机组作为主电源,并且这两台以上的发电机可以通过公用母线向全船荷供电,这就是通常所说的发电机并联运行。 为什么要采用并联运行的方式呢?而船舶工况变化较大,因而用电量的变化也很大,例如船舶在停泊和装卸货两种不同的工况时,用电量可能相差3倍甚至更多,采用两台以上较小容量的发电机可以根据负荷的大小改变运行的方式,使发电机经常处于最佳的运行状态。如果电站只采用一台大容量的发电机,使它满足最大负荷的需要,
22、那么在小负载时,发电机降处于轻载而是效率大为降低,并且选择备用机组容量时也必须考虑和这台大容量的发电机容量相同,从而使投资费用和运行费用都会增加;另外,为了维护检修的方便,也需要采用并联运行的方式,要检修运行中的发电机组而不允许电站停电时,就必须先将备用机组投入并联运行,然后再从电网上切除欲检修的机组。 在自动化要求较高的船舶中,还需设置自动并车的装置,使待并发电机自动投入电网并联运行,以便提高船舶供电的可靠性。 1.2.2 发电机并联运行的特点 船舶同步发电机的并联运行多位两台或多台同容量的发电机并联。以两台为例分析同容量发电机并联运行的一些特点。 1两台发电机的有功功率和无功功率总是等于负
23、载的有功功率和无功功率,即: 由于发电机以及船舶电网的容量都不大,当有大容量的用电设备投入船舶电网或从电网中被切除时,会直接引起并联机组的有功功率和无功功率同时变化,同时也会引起电网电压和频率的变化。 2当电网的用电负荷保持不变时,若单独增加一台发电机的输入机械功率,可使该发电机输出的有功功率增加;与此同时,将会引起另一台并联机组输出的有功率自动减少。此外,由于输入的机械功率的增加使转速升高,而另一台机组因输出的有功功率减少也使转速上升,结果将使电网的频率有所升高。如果单独减少一台机组输入的机械功率,则变化与上述相反。只有同时向相反方向调节两并联机组输入的机械功率时,才能保持电网的频率不变。
24、3单独增加一台发电机的励磁电流时,该发电机输出的无功功率增加,而另一台发电机输出的无功功率将自动减少。此外,增加励磁电流使空载电动势增大,而另一台发电输出的无功功率的减少使其去磁效应减少两者都使电网的电压有所上升。单独减少一台发电机的励磁电流,则变化与上述相反。只有同时反方向调节两台发电机的励磁电流,才能保持电网的电压不变。 1.2.3 船舶同步发电机的并联运行的条件在船上通常有三种情况需要并车操作。一是需要满足电网负荷的需求,当单机负荷达到80%额定容量时,且负荷仍有可能增加,这时就要考虑并联另一台发电机;二是当进出港,靠离码头或进出狭水道等的机动航行状态时,为了船舶航行的安全,需要两台发电
25、机并联运行;三是当需要用备用机组替换下运行供电的机组时,为了保证不中断供电,需要通过并车进行替换。 准同步并车方式是目前船舶上普遍采用的一种并车方法。为了使并联运行的交流同步发电机保持稳定地工作,每台并联运行的发电机必须满足如下条件:1 待并机组的相序与运行机组(或电网)的相序一致;2 待并机组的电压与运行机组(或电网)的电压大小相等;3 待并机组电压的初相位与运行机组(或电网)电压的初相位相同;4 待并机组电压的频率与运行机组(或电网)电压的频率大小相等。 由于在发电机组安装时已经对发电机的相序与电网的相序进行测定保证相序一致的条件。因此并车操作就是检测和调整待并发电机组的电压、频率和相位,
26、使之在满足上述三个条件的瞬间通过发电机主开关的合闸投入电网。这样就可以保证在并车合闸时没有冲击电流,并且并车后能保持稳定的同步运行。 实际并车时,除相序外,其他条件不可能做到完全一致,而且必须有一定的频差才能快速投入并联运行。 (1)当频率相等、初相位一致、电压不相等时,两台发电机并车瞬间将在两机组间产生一个无功性质的环流、对两台发电机起到均压作用。由于发电机在并车瞬间呈现很小的等值电抗,因此当电压差较大时,合闸瞬间会产生很大的冲击电流,对两台发电机和电力系统均不利。巨大的冲击电流产生的冲击电动力,会损伤发电机电枢绕组、主开关触头,使汇流排变形等。一般并车操作时,电压差U不得超过额定电压的10
27、%。 (2)待并机组与运行机组电压相等、频率相等,但初相位不同,两台发电机并车瞬间在待并机主开关的动、静触头间会有一电压差,在两机组间会出现滞后电压差90的环流,此时的环流不再是纯无功性质。把环流有功和无功分解,得到有功分量环流的和无功分量的环流,在有功环流的作用下,一台减速而另一台加速,最终使得并联运行的两台发电机达到相位一致而进入同步运行。环流的有功分量对应的功率称为整步功率,其中超前的发电机输出整步功率,滞后的发电机吸收整步功率。整步功率对应的整步转矩,对于超前发电机而言是阻转矩,使转速下降,对于滞后发电机而言是驱动转矩,使转速上升,最终将两机拉入同相位同步运行。该过程称为“牵入同步”过
28、程。无功性质的环流、对两台发电机起到均压作用。为了减少冲击电流,一般并车操作时要求相位差小于。 (3)待并机与运行机电压相等,初相位相同,但频率不相等时并车。在合闸瞬间不会出现电压差,也就没有环流。但由于频率不相等,随时间后移,就会出现相位差,只要相位差一出现,环流就随之产生,即出现整步转矩,一台减速而另一台加速。只要频率差不大,最终依靠整步转矩都能牵入同步。若频差f太大,往往难以拉入同步,同时合闸后环流也不断增大,对发电机和电力系统都不利,应避免这种情况的发生。通常在并车操作时要求频差f小于0.5 Hz,以0.25 Hz最好。 发电机并车时,合闸瞬间任一条件不满足,都会在发电机组之间产生冲击
29、电流。冲击电流的无功分量起均压作用;有功分量产生的冲击转矩起整步作用。只要冲击电流不大,对并车操作是有利的。若冲击电流太大,会造成并车失败,严重时会导致全船停电,甚至造成发电机组的损坏。1.2.4 船舶同步发电机手动并联运行1 指示灯法并车 检查和调整待并发电机的电压、频率、初相位,使之满足准同步并车的条件,然后进行合闸,使发电机拉入同步。如果由手工完成这个过程,称为手动准同步并车操作;若由自动装置来完成,则称为自动并车操作。当待并发电机组起动,并建立了电压之后,可通过发电机控制屏上的电压表检测待并发电机电压是否与运行机的电压相等,应使电压差在10%以内。只要发电机调压器工作正常,一般都能满足
30、这个要求,无需特别调整。手动并车操作关键要检测和调整待并机的频率和初相位,使之满足准同步并车要求。要注意的是,不应在电网负载波动比较大(如有大功率电动机在起动、变速等)的情况下进行并车操作。一般通过调速开关(油门)来调节原动机转速,使待并机的频率接近运行机的频率。然后进一步检测待并机与电网的频率差是否小于0.5 Hz,初相位是否一致。检测这两个并车条件的方法有同步指示灯法和整步表法。 根据同步指示灯的不同连接方式可分为灯光明暗法和灯光旋转法。(1)灯光明暗法是将三盏同步指示灯分别跨接在待并车发电机和运行发电机的对应相上,每个灯泡两端的电压就是两对应相之间的电压差值。灯泡上所加电压的大小随相位差
31、的变化而变化,在频率不相等时,其相位差随时间进行周期性的变化,灯泡就明暗交替变化。当相位差为0时,三个灯泡所加电压为零,同时熄灭,当相位差为180时,三盏灯泡所加电压最大,灯泡最亮。设频率差f,则相位差为2f,灯光变化一个周期所需时间为。频差f越大,灯光变化的周期越短,当灯光变化周期大于2 s时,才能符合频差并车条件。为了可靠抓获在同相位点(即灯全灭时)合闸,一般调整频差在0.25Hz(周期4 s),然后,在灯光全灭的中间期果断合闸。(2)灯光旋转法是将三盏同步指示灯的其中一盏接在电网与待并机的对应A相上,其余两盏分别交叉跨接在电网的B相(C相)与待并机的C相(B相)上(即三盏同步指示灯一盏对
32、接,两盏叉接)。当频率差为f时,三盏灯泡轮流熄灭,频差越大灯光旋转的速度越快,频差方向改变,灯光旋转的方向也改变。手动准同步并车操作时,应选择三盏同步指示灯顺时针方向旋转,在旋转一周的时间为35s,同时对接相灯熄灭而两盏叉接相灯同样亮时,果断合闸。 灯光旋转法不仅能检测频差的大小,而且可以检测频差的方向,灯光明暗法,只能检测频差的大小,频差的方向需通过两频率表读数的比较才能知道。 如果出现灯光明暗法变成灯光旋转法、或灯光旋转法变成灯光明暗法,原因有两种可能,一是待并机与电网相序相反;另一种是同步指示灯接线错误。2 同步表发并车同步表法是用来指示待并机与电网的电压相位差,频率差及其方向的仪表。
33、若待并机电压超前电网电压一个电角度,指针就指在整步点右边(快方向)一个角度。若待并机电压滞后于电网电压一个角度,指针就指在整步点左边(慢方向)角度上。若待并机频率,整步表指针将不断向“快”方向转动。若待并机频率,整步表指针将不断向“慢”方向转动。频差越大,其指针转动的速度越快,整步表能检测出待并机与电网的频差的大小和方向,而且指针的不同位置指出了相位差的大小。并车操作时,应使整步表指针转动一周所需时间大于4 s(),一般取35s),在整步点到来前的一个小角度,把握时机、果断合闸,这时合闸冲击电流最小,提前一个小角度而不在整步点才合闸,是因为每个主开关都有一个固有的动作时间。 在用准同步表法进行
34、并车操作过程中,当电压差与频率差基本调整完毕后,就应接通同步表转换开关,并将其转换到待并发电机位置。然后通过调速开关调节待并发电机转速(一般总是使同步表顺时指针旋转,这样并车后就可使待并发电机分担少量负载,防止出现逆功率,对并车成功有利)。当指针快到11-12点即相位差为零时立即合闸,待并发电机依靠自整步作用被拉入同步,然后再进行负载转移。应当指出:同步表按短时工作制设计,一般持续工作时间不大于15 min,间隔时间为30 min,所以,并车操作过程不宜太长,并车成功后应及时切除。3 粗同步并车(电抗器并车) 手动准同步并车对操作技术要求较高,在船舶交流化发展的初级阶段,长期工作于直流船舶的工
35、作人员对交流电不很熟悉,经常发生由于并车操作不当而使并车失败或造成全船断电,因而出现了粗同步并车方法。由于这种并车方法对接通的相位条件要求不高,故称为粗同步并车。粗同步并车也称电抗器并车,其原理是当调节待并机达到允许频差条件后,可在小于180的任一相位下先在电网和待并机之间接通一限流空心电抗器(即粗同步电抗器)。电抗器的作用是将电网与待并机之间的非同步电压差所产生的电流限制在1.5倍额定电流以内,所以即使在任一相位下通过电抗器接通也不会造成大的损害。同时也是利用这个电流产生整步力矩,将并联机组拉入同步。拉入同步后再将发电机的主开关合闸,然后断开同步电抗器(电抗器只允许短时使用)。粗同步并车的操
36、作要求是:(1)整步操作的频差条件和准同步并车要求一样,要达到允许频差范围;(2)在允许频差条件下,当整步表的指针转到小于180的任何位置时,先按下粗同步电抗器接通按钮;(3)观察整步表指针,当指针停在红色标志点处不动时(表明在整步力矩的作用下已拉入同步),方可按下待并机主开关的合闸按钮;(4)最后断开同步表,并车完毕。电抗器由粗同步控制线路自动延时切断。1.3 GDI+对于船舶建造与设计的迫切性随着船舶自动化和计算机技术的广泛应用,使船舶向着高度自动化的方向发展。在船舶自动化中,机舱自动化是整个船舶自动化中的一个重要环节,也是船舶制造业发展的总趋势。可以利用计算机技术实现某些船用仪表的特定功
37、能,在实验室实现对船舶机舱的模拟功能,大大方便了日常学习和实验研究。在实际应用中船舶自动化设计为建造船舶节省了大量的时间。第二章 GDI+和自定义控制概述与GDI+绘图表面2.1 GDI+的意义GDI+:Graphics Device Interface(图形设备接口),Microsoft的新.NET Framework类库,用于图形编程。他的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。2.2 GDI+和自定义控制.NET Framework的出现给编程带来了极大的改变,图形编程也同样受到了巨大的影响。微软在.NET中把 GDI升级为GDI+,它包含了许多
38、命名空间和类,专门用于Web和Windows控件中的自定义绘图操作。专门讲述了GDI+编程中与开发自定义控件相关的功能,重点放在Windows Forms自定义控件的创建上,同时也讨论了ASP.NET服务器控件的创建问题。共分为四个部分:第一部分是对GDI+的用途和结构的概述,第二部分结合代码实例讲述了GDI+编程的具体细节,如绘图表面、坐标系、钢笔和笔刷、文本和字体、图像和图像操作、路径和区域、变换的处理和打印等。其中涉及了与GDI+在自定义控件中的应用最相关的所有的类、方法、属性和事件。第三部分集中讲解了自定义控件的设计和开发,包括自定义控件的定义、特征,控件与VS.NET的集成,在控件中
39、如何实现滚动等。第四部分讲述了GDI+功能在Web应用程序中的使用。如在Internet上提供GDI+图像、创建ASP.NET服务器控件和使用GDI+创建Web服务等知识。GDI+是Microsoft的新.NET Framework类库,用于图形编程。因为它是.NET Framework的一部分,所以也是面向对象的。GDI+被组织到六个命名空间中,是一组在一起使用的类。从这一点来看,它类似于.NET中其它领域的功能,如ADO.NET。 下面来了解一下GDI+的主要功能:1.GDI+提供了三种绘图表面:窗口、位图和打印机。2.GDI+提供的工具可以再任何绘图表面上绘制二维“线框图”。包括绘制线条
40、、图形和多边形、曲线,还有各种笔刷和钢笔。还能进行许多类型的转换,很轻松的创建和绘制图像。3.GDI+中对文本绘制功能进行了扩展。4.GDI+支持图像和位图,可以再任意绘图表面上读取图像,绘制图像,还可以创建和绘制图像。5.GDI+支持打印,开发人员只需付出很小的努力,就可以轻松的获得打印预览功能。6.GDI+可以处理各种.NET应用程序。2.3 绘图表面概述绘图表面是对屏幕上的窗口、打印机上的页面或内存中的图像的一种基于光栅的抽象,这里所说的光栅是指界面是由放在二维网格中的像素组成的。像素是绘图表面的小单位,可以直接操作,使用一对坐标,以(x, y)的形式就可以定位各个像素,这一般称为笛卡尔
41、坐标。2.2.1 绘图表面的特性任何绘图表面都主要有三个主要特性:界面的大小、像素的分辨率和颜色的深度。绘图表面的大小是由绘图表面上水平像素和垂直像素的数量确定的。绘图表面的分辨率是用像素/英寸(PPI)或点/英寸(DPI)来表示。绘图表面颜色深度是由单个的像素决定的,每个像素都能描述一种颜色,而颜色是由红、绿、蓝(RGB)三种成分组成的,三种成分有256种亮度(0255),因此每个像素就可以包含256*256*256=16777216种颜色。2.2.2 绘图表面颜色的结构在GDI+中颜色封装在Color结构中,使用时可以把RGB(Red Green Blue)值传送给Color结构中的一个静
42、态函数,如下例所示:Color c=Color.FromArgb(100,100,255);Brush b=new SolidBrush(c);g.FillRectangle(b,ClientRectangle);当然是用Color结构还可以有其他方式,在这里就不一一列举了。另外GDI+中的颜色还有一种成分叫Alpha成分,它可以用于控制颜色的透明度。在绘制没有任何透明度的图形时,一般会忽略颜色的Alpha成分,颜色的默认行为是完全不透明的,默认值设置为255,Alpha在绘图操作时可以给出透明效果,但屏幕上的图像是没有Alpha成分的。2.2.3 Graphics类只要想在绘图表面上绘图,就
43、必须有Graphics类的一个实例,如果要绘制一个窗体以响应Paint事件,通过事件处理程序的PaintEventArgbs参数进行传送一个参数如下所示:Private void Form1_Paint(object sender,System.Windows.Form.PaintEventArgbs e)Graphics g=e.Graphics;2.2.4 GDI+坐标系建立一个简单的绘图表面,起始点(0,0)坐标在见图表面的左上角,从左到右为X轴,坐标零点从上到下为Y轴。利用坐标平移把(0,0)坐标平移到自己建图所需的坐标建立模型。使用坐标系绘制线条;锯齿效果和反锯齿功能;坐标系的限制;
44、坐标的数据类型;浮点数坐标;坐标的原点。2.4 Pen和Brush类在GDI+中常常使用画笔类和画刷类来显示图形、文本和图像。画刷是从Brush类中派生的任何类的实例,可用于填充形状或绘制文本;画笔类是Pen类得实例,可用于绘制线条和空心形状。在要指定图形对象的颜色时,画笔和画刷可以使用Color对象来帮助实现这些特定的颜色。另外还有用来描述字体样式的Font类、处理图形结构的Icon类。下面着重介绍Pen类和Brush类在图形图像处理中的应用。在实例化Pen对象时,可以指定钢笔的颜色和宽度属性,下面来用两个例子进行说明,主要代码如下: private void UserControl1_Pa
45、int(object sender, PaintEventArgs e) Graphics g = e.Graphics; g.FillRectangle(Brushes.White, this.ClientRectangle); /指定钢笔括的颜色为黑色Black Pen p = new Pen(Color.Black); /以黑色的颜色画一条从像素(0,0)到像素(80,80)的线段 g.DrawLine(p, 0, 0, 80, 80); /关闭对象 p.Dispose(); 代码运行后如图2-3-1所示: 图2-3-1 Pen对象绘制的直线接下来混合使用Pen和Brush绘制一个边框黑
46、色填充巧克力色的矩形主要代码如下所示: private void UserControl1_Paint(object sender, PaintEventArgs e) Graphics g=e.Graphics;g.FillRectangle(Brushes.White,this.ClientRectangle);/指定钢笔的颜色为黑色Black Pen p=new Pen(Color.Black);/以黑色的颜色画左上角坐标为(10,10),长度为60个像素,宽度为60个像素的矩形g.DrawRectangle(p,10,10,60,60);/指定笔刷颜色为灰色SolidBrush b=n
47、ew SolidBrush(Color.Gray);/填充以上矩形g.FillRectangle(b,10,10,60,60);/关闭对象p.Dispose();b.Dispose();代码运行后如图2-3-2所示:图2-3-2 Brush绘制并填充的矩形Graphics类提供了用于绘画的平台,一般可以使用的最基本的工具就是画笔。GDI+库通过Pen类提供了一个画笔,用来绘制直线、多边形、矩形、弧线以及馅饼区等。画笔类用来画具有特定宽度和风格的直线和曲线。必须先用画笔类的构造函数初始化一个画笔对象,在实例化的时候还可以用到颜色和画刷。画笔有很多和画刷相似的特点,但是在线条的端点、交点以及线条本身的线型方面,画笔还有一些画刷所没有的行为特点。另外可以通过设置画笔的StartCap和EndCap属性来控制线条端点的不同样式。除了端点样式的变化外,由画笔的DashStyle属性控制。各个线型参数及其说明如下表所示:表2.3