(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf_第1页
(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf_第2页
(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf_第3页
(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf_第4页
(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(管理科学与工程专业论文)电网图库一体化平台研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕十学位论文 中文摘要 近几年随着电网规模越来越大、结构越来越复杂,实际计算中需要的算法越来越多, 以前的编程方法作为算法平台已经不能满足实际需要。为了降低算法对数据的依赖性,需 要采取以图形为平台的计算方法。图库一体化功能的实现,使得每个设备图元都是一个具 有真实属性的电气设备,可以在图形上完成实际中的任何真实操作。同时,实现了图元和 属性的模块化封装,程序的自适应性和可扩展性大大提高。图形平台是电力自动化系统中 不可缺少的部分,图库一体化将成为电力系统图形发展的必然趋势。 本论文主要从电力系统图形和数据库一体化模式着手,探讨了电网继电保护模拟系统 图形平台的功能设计和具体开发的问题。论文的目的是用面向对象的可视化方法开发出一 个图库一体化的电网继电保护故障分析和整定计算软件的图形处理平台,使之能对各种实 际电网建立电网模型,为继电保护模拟系统进行全网的分支系数计算、短路电流计算、故 障分析和整定计算等操作提供一个良好的图形平台环境。 论文共分为六章。绪论介绍了电力系统图库一体化平台研究的重要意义,以及面向对 象编程技术在软件开发过程中的优点:接下来介绍了基于w i n d o w s 图形开发的基本概念, 包括计算机图形学及图形图像的概念、w i n d o w s 图形编程基础以及利用视频缓冲区解决图 形闪烁等问题。第三、四、五章是本文研究的重点,首先讨论了图库一体化平台的整体设 计思路,详细介绍了图形平台的整体功能设计以及图形和图元操作关键技术的实现方法, 主要探讨了图元的生成,图元的拾取与选中,图元的删除、移动、旋转、缩放和镜像,图 形整体的缩放,自动抓取的设计与实现等功能,并对其主要功能提出了较详细的设计方案, 给出了具体的实现代码;然后简要介绍了图元和属性的模块化设计与实现方法,以及绘图 工具箱的设计与实现的主要思想;最后,探讨了继电保护模拟系统在图库一体化平台上的 实现过程,主要介绍了系统整体架构和功能的设计、图形平台的实现方法以及数据库的设 计与实现,从而构造了图库一体化的一个实例,从实践的角度验证了该图库一体化平台良 好的开放性和可扩展性。 本论文不仅对电网图库一体化的研究工作具有理论意义,而且对电力自动化系统的实 觋具有现实的指导意义。该继电保护模拟系统的实现将填补荆州电力局在继电保护领域的 空白,并可为其它电力局实现电力自动化调度管理提供一个良好的图形平台环境。 关键词:电网,继电保护,图形平台,图库一体化 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ee x p a n d i n gu s eo fm a n yn e wt e c h n o l o g i e so ne l c c t d cp o w e rs y s t e m s ,t h es c o p eo f p o w e rn e t w o r kb e c o m e sl a r g e ra n dl a r g e r a tt h em e a n w h i l e ,m o r ea n dm o r ea l g o r i t h m sa r e n e e d e di nc a l c u l a t i o n ,a n do l dm e t h o d su s e dt ow r i t ep r o g r a m sc a n n o tm e e tc u r r e n tn e e d sa ta 1 1 t or e d u c et h ed e p e n d e n c eo nd a t ea n dl e tr e s e a r c h e r sp u tt h e i rh e a r t si n t oo p t i m i z i n gt h e a l g o r i t h m si n s t e a do fd a t a ,a l g o r i t h m sb a s e do ng r a p h i cp l a t f o r ma r cn e e d e d h o w e v e r , t h eu s e r s h a v et os p e n dm u c ht i m eo nc o r r e s p o n d i n ge l e c t r i cf a c i l i t i e sw i t hg e o m e t r i cg r a p h sa f t e r f i n i s h i n gd r a w i n gt h o s eg r a p h s ,w h i c hi n d i c a t e sl o ww o r ke f f i c i e n c y f o r t u n a t e l y , t h ee m e r g e n c e o fu n i f i e dg r a p h i cd a t a b a s eh e l p ss o l v et h i sp r o b l e m a f t e ra ni n t e g r a t i o no fg r a p h sa n dd a t a b a s e , e a c ha t t r i b u t ei sa f a c i l i t yw i t hr e a lp r o p e r t ya n d c a l lf i n i s ha n yr e a lo p e r a t i o no ng r a p h s w h a t s m o r e ,t h ea u t o - d e f i n i t i o no fa t t r i b u t e sa n dt h e i rp r o p e r t yh e l p se n h a n c et h e u s e r s s e l f - a d a p t a b i l i t ya n de x t e n d a b i l i t y s i n c eag r a p h i ci n t e r f a c ei sa v i t a lp a r to fa na u t o - d i s p a t c h i n g s y s t e m ,t od e v e l o pau n i f i e dg r a p h i cd a t a b a s ei sat e n d e n c yf o ra ne l e c t r i cp o w e rs y s t e m i nt h i sp a p e r , w ef i r s te x p l a i nt h ei m p o r t a n c eo fr e s e a r c ho nt h ep l a t f o r mo fau n i f i e d g r a p h i cd a t a b a s e ,w h i c hd i s m i s s e st h eu s e r sf r o mt r i v i a l l yd e a l i n gw i t hd a t a t h e nw ei n t r o d u c e t h ea d v a n t a g e so fo b j e c t e dp r o g r a m m i n gi ns o f t w a r ec o d i n g ,t h ew i d eu s eo fc o m p u t e rg r a p h si n e l e c t r i cp o w e rs y s t e m sa n dt h eb a s i ck n o w l e d g ea b o u tg r a p h i cd e s i g nb a s e do nw i n d o w s t h e s o l u t i o nt og r a p h i cs c i n t i l l a t i o ni sd e t a i l l yd i s c u s s e d w em a i n l ys t u d yt h et o t a lt r a i no ft h o u g h t o nb u i l d i n gap l a t f o r mo fau n i f i e dg r a p h i cd a t a b a s e s o m ew a y st od e s i g na n dr e a l i z ek e y t e c h n i q u e sa r ep r e s e n t e d a n dt h o s ek e yf u n c t i o n s ,s u c ha sc r e a t i n gt h ea t t r i b u t e s ,t h e i rs n a t c h i n g a n dd e t e r m i n i n g ,e r a s u r e m o v e m e n t ,r e v o l v e m e n t ,s h r i n k i n g - a n d a m p l i f y i n g ,a u t o s n a t c h i n g , m i r r o ri m a g e ,t h et o t a ls h r i n k i n g a n d a m p l i f y i n g ,a r es t r e s s e da n ds o m er e l e v a n te x a m p l e sa r e g i v e n f i n a l l y , w ep r e c i s e l yi n t r o d u c dt h ep r o c e s st or e a l i z ear e l a yp r o t e c t i o ns y s t e mo nt h e p l a t f o r mo fa nu n i f i e dg r a p h i cd a t a b a s e ,a n dt h e ng i v et h es o l u t i o n sa n dc o d e sf o ra ne x a m p l e f r o ms o f t w a r et oa g r a p h i cp l a t f o r m t h i sp a p e rh a sb o t ht h e o r e t i c a la n dp r a c t i c a lm e a n i n g st or e s e a r c ho na nu n i f i e dg r a p h i c d a t a b a s e t h ei m p l e m e n t a t i o no ft h i sk i n do fs y s t e m sw i l lm a k eu pt h eb l a n ki nt h ef i e l do fr e l a y p r o t e c t i o ni nj i n g z h o ue l e c t r i cb u r e a ua n di ss u p e r i o rt ot h eo t h e rs a m el e v e ls y s t e m si no u r c o u n t r y k e yw o r d s :p o w e rn e t w o r k ,r e l a yp r o t e c t i o n ,g r a p h i cp l a t f o r m ,u n i f i e dg r a p h i cd a t a b a s e 藏汲理王大学琰士学整论文 1 1 课题来源及目的 第1 章绪论 筵次爨选谍疆懿来嚣为翔娜电力爨与魏汉理王大掌管瑾擎虢关予黧鲻毫力 岗电力调度自动化管理系统会作项目的一部分,项目名称为电网继电保护模拟系 统。本系统采用网形建模方 表进行电网结构信息的输入,在功能上采用人工干预 下鸵蠡动整定秘旅薄计算,霹鞋鑫动钉露定俊整定通熊蘩,劳对继壤绦护专业数 禚进行管理。熬个系统共分为数据输入、数据预处理、故障计算、傈妒整定、管 理森询等模块。 本论文主要从电力系统图形和数据库一体化模式着乎,探讨了电网继电保护 模援系绞葱形平台豹凌麓设诗魏吴薅嚣发豹蠲蘧。论文熬蠢懿是溪甏疯对象夔胃 视化方法开发出一个图库一体化的电网继电保护故障分析和整定计黧软件的图 形处理平台,使之能对各种实际电网建立电网模型,为继电保护模拟系统进行全 网的分支系数计葵、短路电流诗算、教障分袄移整定计冀等操佟提供一个良好懿 图形平台环境。 1 2 电力系统图库一体化平台 1 2 1 图库一体化的概念 图库一体化媛指把图形与图形在数据库中对应的信患作为一个熬体来进行 热疆。藿影是数攥靛一耱表壤形式,其特点建形象帮蠢浚。数摇瘁燕对各箨圈形 所褒示的信息进行存储、处理和管理的工具。任何一个系统的建立,其实质都是 对该系统所处理的数掘信息进行数据结构和数据关系的建立。图形和数据必须按 照一定戆关系关联到一起才鸯实际意义,关联鼗据帮鹫影可敷逶过嚣耱方式:一 静是直接面对数掇库的表结构,手工填写数掘库i 己录的数据:另一种怒通过操作 图形,把数据库中的数据当作图形的属性来定义和修改,只要找到图形就可以找 到与之对应的数据。很明显,籀一种方式工作桔燥、不嫒观、容易出锩,必须把 数据痒中煞记秉与藩形系统中豹踅元透 亍入工绑定;第二稀方式懿绪澎粼完全雩荨 到改观,用户面对的是直观的图形,不誊接面对繁琐的数据,在图形处理完毕的 同时自动追加和派生数据库的记录,且同时与图形绑定,非常方便。因此,图形 数攒瘴一体睨楚瓣兹曩形系绕豹主滚技术。 电网图形数据库一体他的一个关键问题是实现面向电网设备的建模方式。其 栽汉理工大学联士学位论文 实质是设备图元对象与数据库记录一一对_ 暾,在定义一个设备图元对象的同时自 动遮艇一条数掇麾记录;另方面,要求设器图元的属憔参数及其数摄输入暴瑟 麓够鬏摇角户懿要求迸行骖菠,这撵才戆爽正骰裂图形与数箨库静一一对应,两 鼠也能保证系统的兼容性。谯定义设备图元对象的时候,根据图元设铸的属性自 动生成数据库殿其它图元属饿,并且能够肉动绑定数据库,不仅省去了图形数据 簿瓣大王终定戆额袋,嚣曼减少了操终镄谟魏毒毙缝。 1 2 2 实现豳库一体化的意义 在重形数攒痒体像珐簸实瑗之 l 萋,黉裁终一个圈形数据疼势存的雾嚣,簧 簧邂行三个步骤:( 1 ) 绘制灏箍;( 2 ) 录入数据库:( 3 ) 建立强元与设备的对应 关系。对于一个地级市规模的调度自动化系统来说,仪绘制电气接线圈的工作量 就非常大,一般超过8 0 人必;如果使用没有图库一体化功能的软件避行绘图, 麓芦= | 把凡薅图形绘裁宠华爱,还要花费更多熬霹瘸把建簿图形与毫气竣各一一对 成,而且出错的可能性很大,一旦出现错谈,检查错谈时更是无从下乎,工作效 率q 常低。图库一体化功能的出现,使用户从烦琐枯燥的数据处理工作中解放出 来,忿时每今设器图元都是一令具有真实麟经静电气设蘩夔表示终号,不霉佟必 一个孤立的几何强形面淘粥户,所以当用户添加一个设备圈元的时候,系统会自 动把这个设备的信息添加到数据库中,而鼠能够正确地把它同其他图元区别开 来,自动识别设备图元。只鬟设备属性信息定义的足够宠餐;就可以在图形上完 藏实际孛静任筒囊实操作。 另外,由予实现了图元和属性模块化封装,可以自行修改,而不影响主程序 芹口计算模块,使得程序的自i 蒯血性和可扩展性太大提离。如果图元发艇了变化, 只爨国标褒定懿蘑键没毒发生擐本蛙戆交键,震户只要皴镶少夔修改王终裁憨荛 以前的老数据自动转换为符合新标准的鹫标。如果要将该圈形数据麟一体纯平台 用于不同的业务,只需重新绘制该业务图元,建立相应的业务处理模块,而不需 要纛做图形系缆。通过属性的模块化封装,可以使用户搬不需要改变烹程序的。跨 滤下,只对该诗舞渣务掰需静灏元属幢逶行薰薪设计,建立相应的计算处理搂块, 就可以在原来的图形上实现不同算法之间的切换。 总的来说,电网图形数据库一体化软件应实现以下三个功能: 文本。文本教藿终是辫形,辘够控铡援绘铡鞘形豹嚣经。帮绶g d i 楚 化了图形渲染,w i n d o w s 编程还是在创建文本输出中增加了复杂度。复杂度增加 懿潮聪,选增燕了灵活性。 ( 2 ) 光栅图形。光栅图形的图形怒w i n d o w s 环境嫩常用的图形类溅。光栅 溪形函数处理存继在鼓稼戈位爨翦数据缀中豹数据,一个标准灼v g a 艇视器的 6 4 0 x 4 8 0 图像就楚显示适配器显示在屏幕上的位图。对光栅图形的w i n d o w s 支持 糍够创建离羼攮圈图像,这样可以更快的显示图像。位图的缺点是需要大量的空 闯,6 4 0 x4 8 0 像綮以及8 位色深的位图濡要大约3 0 0 k 存储空间。显然,随着图 像大小戏色深的增加,存储需求也随之增加。 ( 3 ) 矢量黼形。在g d l 内,矢量图形指的怒创建线及填充黼形的绘图函数。 g d i 的特色是具有一整餐函数繁,这些函数绘制直线、曲线、饼图以及多边形, 也可敬嘏这些函数谲用与竞禳函数随意混合、疆配起来。一般情流下,警入稍惑 到矢量图形时,总会想起儿何图形。出于矢量图形具有易于实现许多复杂的功能, 鞫瑟在绘图程彦牵被大鲞豹应掰。 8 武汉理l :火学联士学位论文 在w i n d o w s 环境中进行图形图像编粳时,位图和矢量图是两个麓要的基本 概念。位图格式比较容易实现,而且适用予任何图像,因此是现在用得最频繁的 嚣像表示方法,它将一辐嚣分裁残攘格,势黠援辏每点象素点) 瓣亮发攀狻记录。 幽予利用援格数据点映射图像中豹象素点,园此命名为彼图格式,其中位图区域 中数据点的位麓即为对应象綮点的位置。矢孱格式利用一系列的线段溅形状描述 圈像,其文件构成很像一个慰用程序。 一般来说,鞫像文终播式都是采弼经翔或矢量两种格式逶行攒述,两静接式 各有优劣。位图格式比较适合描述颜色、获度等级或者形状变化比较复杂的图像, 如照片、视频图像等。矢量格式更适合描述线形图,如计算机辅助几何设计对应 豹强像及豢用静工程设计墅澎莓。霞戈这熊圈霾形豹形状缀成、灰溲淡及颜色变 化等都比较简单。 w i n d o w s 的位图实际上怒一些和显示藩素相对应的位阵列,它商两种类型: 一种称之为g d i 健图,另一种是d i b ( d e v i c e - l n d e p e n d e n tb i t m a p ) 位嬲。 g d i 篷蚕蔻鑫m f c ( m i c r o s o f if o u n d a t i o nc l a s sm , r a r y ) 中豹c b i t m 翠类来表 承的,在c b i t m a p 类的对数中,包含了一种和w i n d o w s 的g d i 模块有关的 w i n d o w s 数据结构,该数据结构是与设备有关的,故此位图又称为d d b 位图 ( ( d e v i c e d e p e n d e n tb i t m a p ) 。囊用户懿覆黪取褥链墅数壤信怠时,其缎霆显示方 式囱显卡类型褥定。由于g d t 链强豹这种设备裱赣型,当位图通过嗣络传送到 另一台p c ,可能就会出现闷蹶。 d i b 比g d i 位图有很多编程优势,例如它自带颜饿信息,从而使调色板管 毽怒麓容器。羹镬骛运行w i n d o w s 懿凝卷都碍骧整理d i b ,逶零戮嚣缀麓b m p 的文件形式被傺存在磁盘中域作为资源存糖于程序的e x e 或d l l 义件中。 b m p ( b i t m a p 的缩写) 文件格式是w i n d o w s 内部存储本身的位图文件格式,它 宠谗w i n d o w s 系统在任何设舔最示这个点阵位圈。一个b m p 文传遽鬻包括一个 文静头、一个髓黼信怠数据块和相关豹图像数据。b m p 定件静布局形成如图2 - 1 所承。 文律头 b h m a p 王= 珏嚣h e a r 位图信息头 b r 】m 御d h e a r 颜色袭 r g b q u a d 图像数据 魏粢按每行每梦嗍 序排 图2 - 1b m p 文镩的布局 9 b f o f i b i t s 武汉疆工大学磺士学谴论文 ( 1 ) 毽耀文件络褥 文件头是一个b i t m a p f i l e h e a r 结构,其内容如下: t y p c fs t r a c tt a g b i t m a p f i l e h e a r w o r d b t t y p e ; d w o r d b f s i z e ; w o r d b f r e s e r v e d l ; w o r d b f r e s e r v e d 2 ; d w o r d b f o f f b i t s ; b i t m a p f i l e h e a r ,f 强r l p b i t m a p f i l e h e a r ,+ p b i t m a p f i l e h e a r ; 该结构的说明如表2 - 1 所示。 裹2 1 佼凿文传缝梅 结构成员含义 b f t y p e b m p 文转载标志,翅来识别一个文枣 楚否为 b m p 文件,如果个文体是b m p 文件,那么 b f t y p e 的值应该怒“b m ”,来指定这个文件 转l s i z e b m p 文释豹丈夸,宅可叛震来粼定一个b m p 文件是否完整 b f r e s e r v e d l 和b f r e s e r v e d 2总等于0 b f o 册i t s 从本结构到图像数据的偏移,在d i b 文件中, 这个值实际上没霄什么用处 ( 2 ) 位圈信息数据 使图信息数据由一个位图接息头和个颜色表组成。位图信息头是个 b r r m a p i n f o h 副匮数器结梅,内含有d i b 的尺寸和颜德格式信息,内容如下; t y p e fs t r u c tt a g b n w 酗茁n 崾o h e a r d w o r db i s i z e : l o n g b i w i d t h ; l o n g b i h e i g h t ; w o r d b i p l a n e s ; w o 费d b i b i t c o u n t ; d w o r d b i c o m p r e s s i o n ; d w o r d b i s i z e l m a g e ; l o n g b i p e l s p e r m e t e r ; n g b i y p e l s p e r m e t e r ; d w o r d b i c i r u s e d ; d w o r d b i c i r i m p o r t a n t ; b i t m a p i n f o h e a r ,f a r 4 l p b l t m a p i n f o h e a r ,+ p b i t m a p i n f o h e a r ; 1 0 武汉理工大学硕士学位论文 这个结构非常重要,它包含了描述一个d 1 b 图像的必要数据宽度、高 度和颜色深度等参数。这个结构在d i b 函数中要频繁用到。 该结构的说明如表2 2 所示。 表2 - 2 位图信息结构 结构成员 含义 b i s i z e结构b i t m a p i n f o h e a r的字节数,即 s i z e o f ( t a g b i i m a p i n f o h e a r ) b i w i d t l 图像宽度,以象素为单位 b i h e i g h t 图像长度,以象素为单位 b i p l a n e s 目标设备的位平面数,只能是1 b i b i t c o u r l t 每个象素的b i t 数,下列值有意义: 用在j p e g 格式中 单色图,调色板含有两种颜色 4 ,1 6 色图 8 ,2 5 6 色图 1 6 ,6 4 k 图,一般没有调色板,图像数据中每2 个字节表示 一个象素,5 个或6 个位表示一个r g b 分量 2 4 ,1 6 m 真彩色图,没有调色板,图像数据中每3 个字节表 示一个象素,每个字节表示一个r g b 分量 4 g 色真彩色,一般没有调色板 b i c o m p r e s s i o n 这个值表不幽像的压绢格式: b ir g b ,普通格式无压缩 b ir l e ,使用r u n 1 e n g t he n c o d 压缩,每个象素占8 个b i t b ib i t f i e l d s ,数据未压缩,但本结构后有一个3 2 b i t 的整 数,作为r g b 3 种颜色的掩码,用于1 6 位图和3 2 位图 b ij p e g ,i p e g 压缩 这个值几乎总为0 b i s i z e l m a g e图像数据的大小,对b l r g b 压缩方式,以字节为单位 b i x p e l s p e r m e t e r水平方向上每米的像素个数 b i y p e l s p e r m e t e r垂直方向上每米的个数 b j c j r u s e d 调色板中实际使用的颜色数,对2 色、1 6 色、2 5 6 色图,这 个域通常为o ,表示使用b i b i t c o u n t 确定的全部颜色:唯一 例外是当使用的颜色数目小于指定的颜色深度的颜色数目 的最大值 b i c m m p o r t a n t 显示位图是必须的颜色数:作为调色板管理策略的参考数之 一,通常被使用的0 值表示所有的颜色都是必需的 ( 3 ) 图像数据 位图数据的长度由图像尺寸、象素的位数和压缩方式等共同决定。实际尺寸 可由文件头中的第二项“文件大小”减去第五项“数据偏移”值得到。 武汉理工大学硕士学位论文 需要说明的是,d e b 位图数据可以有逆序( b o t t o m - u p ) 和顺序( t o p - d o w n ) 。前 者位图原点在左下角,最后一行象素数据放在最前,最前一行象素数据放在最后: 后者位图原点在左上角,象素数据顺序存放。当b i t m a p i n f o h e a r 结构中的 b i h e i g h t 为正时,位图是顺序,否则为逆序。只有逆序位图数据才能被压缩,而 顺序位图则不行。 2 3w i n d o w s 图形编程基础 w i n d o w s 是一种图形操作系统,它把所有的东西都作为图形在屏幕上进行显 示,甚至把文本也作为图形显示。因此,用户就不会奇怪为什么w i n d o w s 拥有 大量的图形处理函数库,即通常所说的g d l ( g r a p h i c sd e v i c ei n t e f f a c e ) i 弱数库。 另外,w i n d o w s 的设备无关性使得用户不可能预先知道系统所连接的设备类型, 也不可能对显示性能进行假设,所以绘制屏幕的功能必须通过设备上下文 d c ( d e v i c ec o n t e x t ) 来间接实现。 m f c ( m i c r o s o f tf o u n d a t i o nc l a s sl i b r a r y ) 封装了许多与设备环境d c 相关的 类,通过这些类用户可以非常容易地对设备环境进行处理。这些类不仅包含d c 本身,而且还包含字体、画笔和画刷等绘图工具。 具体地讲,进行图形图像编程就是针对w i n d o w s 自带的图形设备接口函数 库和设备环境进行操作,通过调用这些函数库中的函数来完成绘制工作。 2 3 1 图形设备接口( g d i ) w i n d o w s 图形图像编程主要利用图形设备接口中的相关函数实现。通过确定 设备环境f d c ) 的“状态”,以确定图形的颜色、尺寸等属性。g d i 对象是由m f c 中的类来表示,这些类有一个共同的抽象基类c g d i o b j e c t 。从c g d i o b j e c t 派生 出g d i 对象有以下几种: 位图类( c b i t m a p ) :一种位矩阵,每一个显示象素都对应于其中的一个或多个 位。我们可以利用位图来表示图像,也可以用来创建画刷。 画刷类( c b r u s h ) :定义了一种位图形式的象素,利用它可以对区域内部填充 颜色或样式。 字体类( c f o n t ) :一种具有某种风格和尺寸的所有字符的完整集合,常常被当 作资源存于磁盘中,其中有一些还依赖某种设备。 调色板类( c p a l e t t e ) :一种颜色映射接口,允许应用程序在不干扰其他应用程 序的前提下,充分利用输出设备的颜色描绘能力。 笔类( c p e n l :一种用柬画线及绘制有形边框的工具,我们可以指定它的颜色 武汉理工大学硕士学位论文 及宽度,并且可以指定它画实线、点线或虚线等。 区域类( c r g n ) :由多边形、椭圆或二者组合形成的一种范围,可以利用它来 进行填充、裁剪及鼠标点中测试等。 2 3 2 设备环境( d c ) 设备环境d c 实际上就是一个关于如何绘制图形的方法的集合。它不仅可以 绘制各种图形,而且可以确定应用窗口中绘制图形的方式,即确定绘图模式和映 射模式。用户在绘图前,必须获取绘图窗口区域的一个设备环境,接着才能调用 g d i 函数和执行适合于d c 的命令。获取d c 时,用户不必关心大多数的属性, 因为w i n d o w s 初始化了一套完整的属性和对象集合。同时,为了创建应用程序 的特定显示,用户还可以更改g d i 的属性和对象。例如,w i n d o w s 缺省的d c 包括了一个黑色画笔,若不作改变,则绘制的任何线条都是黑色的;若用户希望 画红色线条,则可以构造一个新的画笔,调用c d c 函数将其选入d c 则可。其 代码实现如下: c d c + p d c ; c p c nn e w p e n ( p ss o l i d ,1 ,r g b ( 2 5 5 ,0 ,0 ) ) ; c p e n + p o l d p e n - - p d c - s e l e e t o b j e c t ( & n e w p e n ) ; 2 3 3 设备环境类( c d c ) 设各环境类c d c 是m f c 中最重要的类之一,它封装了绘图所需要的所有 函数,是编写图形图象处理程序时必不可少的类。 为了能让用户使用一些特殊的设备环境,基类c d c 还派生了c p a i n t d c 、 c c l i e n t d c 、c w i n d o w d c 和c m e t a f i l e d c 类。表2 3 介绍了派生类的主要功能。 表2 3c d c 类的派生类简介 派生类名称说明 c c l i e n t d c 这是一个设备描述表,提供对窗口客户区域的图形访问。在 窗口中画图时可使用此类d c 。 c m e t a f i l e d c 这个设备描述表代表w i n d o w s 元文件,它包括一系列命令已 重新产生图像。想要创建独立于设备的文件时可使用此类 d c ,用户可以回放这种文件来创建图像。 c p a i n t d c 这是创建响应w mp a i n tw i n d o w s 消息的设备描述表。应 用程序可以使用此d c 更新w i n d o w s 显示,通常在m f c 应 用程序的o n p a i n t ( ) 函数中使用。 c w i n d o w d c 可提供在整个窗口( 客户区和非客户区) 画图的设备描述表。 武汉理工大学硕士学位论文 2 3 4 设备环境的坐标映射 在视图和窗口中绘图或定位总是在一个二维坐标系进行,依据作用的不同, 坐标有多种表示方法。同时,这些方法之间还存在一定的换算关系,称之为映射 模式。 2 3 4 1 显示器的逻辑尺寸和物理尺寸 c d c 成员函数g e t d e v i e e c a p s 可以返回各种显示参数,这些参数对于图形图 像编程是非常重要的。表2 - 4 中列出的7 个参数提供了显示尺寸的信息,这些数 值是在w i n d o w s 9 8 环境下的8 0 0 x 6 0 0 x1 6 分辨率下进行测试的。 表2 4 常见的显示参数 2 3 4 2 设备坐标、逻辑坐标和物理坐标 设备坐标是指显示设备或打印设备坐标系下的坐标,特点是以设备上的象素 点为单位。对于窗口中的视图而言,设备坐标的原点在客户区的左上角,x 坐标 从左至右递增,y 坐标自上而下递增。由于设备的分辨率不同,相同坐标值的物 理位置可能不同。如对于边长为1 0 0 的正方形,当显示器为6 4 0 4 8 0 和8 0 0 6 0 0 。时,其大小不一样。 逻辑坐标是指在各种映射模式下的坐标。绘图时,逻辑坐标往往起更大的作 用。不同映射模式的逻辑坐标不相同,但缺省时,逻辑坐标和设备坐标是一致的。 物理坐标是由程序员自己定义的坐标。当逻辑坐标的精度不能达到要求或需 要用浮点数表示位置时,往往需要物理坐标。比如,当设计一个排版页面,版面 上文字、图形等元素的大小和位置都要有精确的表示。为了防i 上转换时造成太大 的误差,可以将其逻辑单位定为0 ,0 1 毫米,通过计算得出的坐标就是物理坐标。 2 3 4 3 映射模式 为了能保证扣印或显示的结果不受设备的影响,w i n d o w s 定义了一些映射模 式,这些映射模式决定了设备坐标和逻辑坐标之间的关系。 1 4 武汉理工大学硕士学位论文 ( 1 ) m mt e x t 映射模式 在m mt e x t 映射模式下,x 坐标从左至右递增,v 坐标自上而下递增,x 和y 的长度单位均为设备的象素点。尽管此模式与设备坐标系极为相似,但用户 却可以调用c d c 的s e t v i e w p o r t o r g 和s e t w i n d o w o r g 函数来改变该模式下坐标 原点的位置。如下面的代码是将坐标原点设置成( 2 0 0 ,2 0 0 ) ,这时的逻辑坐标点 ( 2 0 0 ,2 0 0 ) 就被映射到了设备点的( o ,o ) 处。 v o i dc m y v i c wo n d r a w ( c d c + p d c ( p d c - s e t m a p m o d e ( m m _ t e x t ) ; p d c s e t w i n d o w o r g ( c p o i n t ( 2 0 0 ,2 0 ( 1 ) ) ; p d c - r e c t a n g l e ( c r e c t ( 2 0 0 ,2 0 0 ,3 0 0 ,3 0 0 ) ) ; ( 2 ) “固定比例”映射模式 w i n d o w s 提供了一组非常重要的“固定比例”映射模式,这些模式都遵循这 样的原则:x 坐标向右递增,y 坐标向下递减。它们之间的唯一区别就在于实际 的比例因子,如下所示: m m _ h i e n g l i s h 每个逻辑单位为0 0 0 1 英寸。 m m _ i m e t r i c每个逻辑单位为o 0 1 毫米 m ml o e n g l i s h 每个逻辑单位为0 0 1 英寸。 m m l 0m :哪t i c 每个逻辑单位为0 1 毫米。 m m _ t w l p s 每个逻辑单位为一个点的1 2 0 。 ( 3 ) “可变比例”映射模式 w i n d o w s 提供的两种映射模式m mi s o t r o p i c 和m ma n i s 鲫t o p i c ,允 许用户改变它们的比例因子和坐标原点。借助于这两种映射模式,当用户改变了 窗口尺寸时,绘制的图形大小也会发生相应的变化;同样,如果翻转某个轴的伸 展方向,所绘的图像也会以另外一个轴为轴心进行翻转,并且用户还可以定义任 意的比例因子。 在m mi s o t r o p i c 映射模式下,纵横比总是1 :1 ,即无论比例因子如何变 化,圆总是圆的;但在m ma n i s o t r o p i c 映射模式下,x 和y 的比例因子可 以独立地变化,即圆可以被拉成扁的椭圆形状。 在v b 中,比例因予、设备坐标和逻辑坐标之间具有下列关系: x 比例因子= x 视口范围x 窗口范围 y 比例因子= y 视口范围y 窗 _ | 范围 设备x = 逻辑x x xl e 例因子+ x 坐标原点偏移量 设备y = 逻辑y y 比例因子+ y 坐标原点偏移量 武汉理工大学硕士学位论文 2 3 4 4 坐标变换 一旦设置了设备环境的映射模式( 包括坐标原点及比例因子) 后,对大多数 c d c 成员函数来说,用户就可以以逻辑坐标作为其参数。但是,对于涉及到鼠 标捕捉、选中测试操作以及许多其它的m f c 库函数,尤其是类c r e c t 的成员函 数,则用户只能在设备坐标下才能操作,因此必须解决不同坐标之间的转换问题。 ( 1 ) l p t o d p 和d p t o l p l p t o d p 函数是将逻辑坐标转换成设备坐标,而d p t o l p 则是将设备坐标转 换成逻辑坐标。其原型如下: v o i dl p t o d p ( l p p o i n tl p p o i n t s ,i n tn c o u n t = 1 ) c o n s t ; v o i dl p t o d p ( l p r e c tl p r e c t ) c o n s t ; v o i dl p t o d p ( l p s i z el p s i z e ) c o n s t ; v o i dd p t o l p ( l p p o i n tl p p o i n t s ,i n tn c o u n t = 1 ) c o n s t ; v o i dd p t o l p ( l p r e c tl p r e c t ) c o n s t ; v o i dd p t o l p ( l p s i z el p s i z e ) c o n s t ; l p t o d p 和i ) p t o l a , 函数实现了设备坐标和逻辑坐标之间的转换,但有时为 避免坐标系带来的一些错误,用户希望直接将某个坐标转换相对于屏幕原点或相 对于窗口客户区原点,c w n d 的s c r e e n t o c l i e n t 和c l i e n t t o s c r e e n 函数可以实现此 功能。其原型如下: v o i ds c r e e n t o c l i e n t ( l p p o i n tl p p o i n t ) c o n s t ; v o i ds c r e e n t o c l i e n t ( l p r e c tl p r e c t ) c o n s t ; v o i dc l i e n t t o s c r e e n ( l p p o i n tl p p o i n t ) c o n s t ; v o i dc l i e n t t o s c r e e n ( l p r e c tl p r e e t ) c o n s t ; 2 3 5 图形变换 二维齐次坐标变换矩阵: b 引 其中,【:l 对图形进行缩放、旋转、对称、错切等变换; l ;l 对图形进行平移变换: 基h 】对图形作投影变换: b 】对图形整体进行缩放变换。 武汉理工大学硕士学位论文 ( 1 ) 平移变换 ( 2 ) 缩放变换 工f y 1 0 y 1 10 0l 0 0 工+ ) t , l 2 ,以,t , ) l y 2 瞳硼2 阱眠刚团缩放示毫印 ( 3 ) 旋转变换 在直角坐标平面中,将二维图形绕原点旋转目角的变换形式如下 k。f葶;-:le2【xscinosa。:-,ycs稍me6j:at。,i】 注:逆时针旋转口暇正值,顺时针旋转目取负值j ( 4 ) 镜像变换 图形关于一个镜面的反射图形( 二维镜像镜面为直线) ,一般变换形式如下 眺 2 4 视频缓冲区 珊阿李 “嘶 在图形的开发实现中,图形是把数据形象化地反馈给操作人员的关键,图形 质量的好坏直接关系到数据图形功能的实现。把大量数据转换为图形输出时,山 于离线数据图形要求实现连续滚动,在线数据图形要求实现动画效果,通常存在 输出显示时屏幕闪烁的问题。屏幕闪烁是由于屏幕上显示内容的更新不同步造成 的,解决方法必须从实现“同步更新”入手。在众多解决方案中,采用多输出缓 冲区的方法最为有效。通常屏幕上的内容是按照顺序方式依次写入显存中,当更 武汉理j 二大学硕士学位论文 新速度大于写完一屏内容所需要的时间时,便会出现闪烁;而输出缓冲区实际上 是一片内存区域,程序在输出之前先把所要显示的内容写入这片内存区域中,完 全写入后再把这块区域的内容一次性拷贝入显示内存中,这样显示内存中的数据 达到了同时更新的目标,消除了屏幕闪烁现象。 2 4 1 闪烁现象 m f c 的绘图过程大多放在o n d r a w 或者o n p a i n t 函数中,o n d r a w 在进行屏 幕显示时是由o n p a i n t 进行调用的。当窗口由于任何原因需要重绘时,总是先用 背景色将显示区清除,然后才调用o n p a i n t ;而背景色往往与绘图内容反差很大, 这样在短时间内背景色与显示图形会交替出现,使得显示窗口看起来在闪烁。当 然,如果将背景刷设置成n u l l ,则无论怎样重绘图形窗口都不会闪烁。但是, 由于重绘时没有背景色对原来绘制的图形进行清除,而又叠加上了新的图形,这 样做会使得窗口的显示乱成一团。另外,闪烁也不是绘图的速度太慢或者显示的 图形太复杂造成的,因为绘图的显示速度对闪烁的影响不是根本性的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论