已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)过程工业监测平台动态监测画面编辑系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 过程工业监测平台动态监测画面 编辑系统的研究与实现 摘要 随着计算机技术在过程工业控制领域中的应用,基于以太网、互 联网和现场总线的监测系统越来越显得重要。但是众多的监测系统由 于没有统一的标准,各自为政,造成系统的开发雷同,且多属于重复 开发,浪费了大量的人力物力资源,因此系统平台化势在必行。作为 平台化的监测系统可以有效的整合资源,快速生成满足实际需求的应 用。而监测画面的绘制与显示是监测平台的一个重要组成部分,它以 图形方式对过程工业现场环境中客观存在的事物进行模拟,并建立它 们之间的信息关系,形成简洁、直观、生动的现场背景和生产过程流 程图。 本文在参考国内外成熟监控系统的基础上,以软件工程的设计思 想为指导,利用面向对象的编程方法,以m i c r o s o f t s u a ls t u d i o2 0 0 3 为软件开发环境,c # 为软件编程语言,应用x m l 技术和d i r e c t x 9 s o 腑a r ed e v e l o p 尉t 实现了动态监测画面编辑系统。该系统提供统一 的图形用户界面( g u i ) ,能快速生成用户需要的监测画面,支持画面 中的设备图元与实时数据连接,支持高效、快速、流畅的监测画面在 监测客户端的动画显示,具有一定的可视化、开放性和可移植性等特 点,与其他子系统( 如数据采集子系统、数据服务子系统等) 共同构 北京化工大学硕士学位论文 成过程工业监测平台。 关键字:监测画面,图元,动态效果,d i r e c t x h 摘要 d e s i g na n di m p l e m e n t 皿o no ft h ed y n a m i c m o n i t o rd i s p l a ye d i t o rs y s t e mb yp r o c e s s i n d u s t r ym o n i t o rp l a t f o r m a b s t r a c t w i t ht h e 印p l i c a t i o n o f c o i n p u t e rt e c i l l l o l o g y i nt h e p r o c e s s i n d u s t r i a la r e ao fc o n t r o l ,s y s t e mo fm o n i 缸b a s e do ne t h e m e t ,i n t e m e t a n df i e l db u si sb e c o m i n gm o r ea n dm o r ei m p o r t a n t b u tt h e r ei sn o s t a n d a r di nt h er e a l t i m em o n i t o rs y s t e m s ,an e ws y s t e mn e e d st ob e d e v e l o p e d ,d e s i g n i n ga n dc o d i n gh a dt ob er e p e a t e d ,w a s t i n gal o t o f h u m a na n dm a t e r i a lr e s o u r c e s ,s oi ti si m p e r a t i v et oh a v et h es y s t e m b e c o m ep l a t f o r m 7 i h em o n i t o rs y s t e m ,a sap l a t f o r m ,c a ne f 琵c t i v e l y i n t e g r a t ei e s o u r c e sa n dr a p i d l yg e n e r a t et om e e tt h ea c t u a ln e e d so ft h e a p p l i c a t i o ns y s t e m 7 i h ed e s i g na n dd i s p l a yo ft h em o n i t o rs y s t e ma r e 洒p o r t a n tp a r to ft h em o n i t o rp l a t f o m n es y s t e mi l l u s t r a t et h ec o n c r e t e o b j e c t se x i s t i n gi nt h ec o n t r o l f i e l du s i n gg r a p h i c sm o d e ,b u i l d st h e r e l a t i o n s h i po ft h e m ,a n df o r m st e c h n i q u ef l o wc h a r ta n dm u t u a lv i e w b e t w e e nu s e r sa n ds y s t e mi nt h ee n d i nt h er e f e r e n c eo fc u s t o m e r sd e m a n da n de x c e l l e n tm o n i t o r s o f t w a r ei nt h ew o r l d ,t h i st h e s i sd i s c u s s e st h ed e s i g na n dd e v e l o p m e n to f t h ed y n a m i cm o n i t o rd i s p l a ye d i t o rs y s t e m i nt h ed e v e l o p m e n tp r o c e s s , m 北京化工大学硕士学位论文 u s i i l gt h ed e s i g no fs o f t w a r ee n g i n e e r i n ga sag u i d e ,t h eo b j e c t - o r i e n t e d p r o g r a m m i n gm e t h o d , t h em i c r o s o f ts u a ls t u d i o2 0 0 3a st h e d e v e l o p i n ge n v i r o n m e n t ,t h e ( 并a st h ee d i t i n gs o f t w a r el a n g u a g e ,a l o n g w i mx m lt e c h n o l o g ya n dd i r e c t x 9s o 腑a r ed e v e l 叩t ,t h ed y n a i i l i c m o n i t o r d i s p l a y e d i t o ri sc r e a t e d 弧i s s y s t e mp r o v i d e s au n i f i e d g r a p h i c a l u s e ri n t e r f a c e( g u i ) , p r o v i d i n g t o o l sw h i c hc a n q u i c l 【1 y g e n e r a t et h em o n i t o rd i s p l a yf o ru s e r ,s u p p o r t i n gt h ec o n n e c t i o nb e t 、e e n d e v i c ee n t i t ya n dr e a l - t i i n ed a t a ,s u p p o r t i n ge f f i c i e n t ,r a p i da n ds m o o t h d y n a i l l i c e f t e c t ss h o wi nm o n i t o rc l i e n t 1 1 1 i s s y s t e m h a st h e c h a r a c t e r i s t i c so fv i s u a l i z a t i o na n do p e n n e s s i ti sc o m b i n e dw i t ho t h e r s u b s y s t e i n s( s u c h a sd a t a a c q u i s i t i o ns u b s y s t e m , d a t as e r v i c e s u b s y s t e me t c ) t of o r mt h ep r o c e s si n d u s t 巧m o n i t o rp l a t f o r m k e yw o r d s : m o n i t o rd i s p l a y ;e n t i t y ;d y n a m i ce f f e c t s ,d i r e c t x 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 作者签名: 日期:211 墨:! :! 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论 文的规定,即:研究生在校攻读学位期间论文丁作的知识产权单 位属北京化工大学。学校有权保留卉:向国家有关部门或机构送交 论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公 布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名:! 鱼兰盥 日期: 导师签名:= 显生圣坠 日期: 抄g , 第一章绪论 第一章绪论 1 1 课题研究背景 监测技术自8 0 年代进入我国以来,一直飞速发展,实现了从模拟到数字直至支 持网络的传输,从最初的前端设备功能单一,难以完成复杂的功能需求发展到目前的 集数字化、网络化、系统化及超大规模组网能力为一体的综合系统。系统不再局限于 简单地完成对数据的处理、传输、控制,其核心是提供一个综合完备的管理控制平台 【l l o 目前我国在过程工业领域发展迅速,其中化工企业有三万多家,占工业企业总数 的7 0 以上。随着计算机技术的迅猛发展,社会生产的生产方式及管理方式都发生了 革命性的变化。很多化工企业在生产中设备大型化、生产连续化、过程自动化的趋势 越来越明显【2 1 ,大量的设备在运行的同时,不可避免的会发生故障,及时的发现故障 以避免产生严重后果是必须的,各类信息管理系统、生产监测系统、故障诊断系统的 应用提高了生产效率,降低了生产成本,保证了产品的质量,同时也提高了生产过程 的可控性。因此使用监测系统对企业的一些重要设备的运行情况进行实时监测得到了 越来越广泛的应用。 现阶段很多监测系统都是针对单个企业开发的,企业由于各自生产的产品以及企 业自身的规模和环境的不同,使用着不同的监测系统。本人所在的网络数据库研究组 一直从事着工业实时生产数据监测系统的研究与开发,研究组的老师与同学先后进行 了十余年的研究与实际开发工作。自从1 9 9 3 年研究开发了基于面向对象的 c l i e n t s e r v e f ( c s ) 模式两层网络结构的过程工业监测系统并在国内几个大型化工石化 企业应用后,所开发的产品随着应用需求和技术更新在不断的升级换代。在不断的积 累中,成功的开发出了一套功能全面的基于c s 三层模式结构的过程工业监测系统。 这种c s 模式的应用在一定程度上满足了共享生产信息的需要,但从实际使用情况来 看,还是存在c s 模式所固有的一些缺陷。随着i l l t e m e t 的飞速发展,将具有强大存 储和管理能力的数据库应用于1 1 1 t e m e t 上,基于b r o w s e r ,s e e “b s ) 模式的系统开发逐 步成熟起来,成功的开发出了基于n e t 平台的实时监测系统并实际应用于数个石化企 业【3 ,4 l 。 这些监测系统都是根据企业自身的特点量身定做的,虽然达到了监测的目的,但 由于针对性太强,导致移植性太差,在软件移植的时候需要耗费一定的时间,很难实 现跨平台操作,无法提供用户需求的自由选择,而且系统自身的升级维护也十分麻烦, 这样既浪费时问又耗费人力物力资源,过程工业监测平台就是为实现监测系统的通用 化而提出的。对系统进行平台化,使企业能够根据自身需要选择性使用平台提供的功 能,从而不必每次都重新针对个别企业开发监测系统,避免了重复劳动,大大增强软 北京化工大学硕士学位论文 件的复用性。平台将各种监测系统所具有的共性提取出来,实现模块的标准化,具备 监测系统的通用性,用户在平台的基础上可定制符合企业自身需求的应用系统。 1 2 动态监测画面编辑系统的发展现状与发展趋势 1 2 1 动态监测画面编辑系统的国内外发展现状 早期的监测系统并不带有画面编辑功能,需要借助其他的绘图工具来完成,由于 没有专门用于绘制流程图工具,十分的不便。而且开发的监测画面也极其简单,仅仅 使用数字化显示数据,需要专业人员时刻关注数值变化以确定数据是否超标。随着计 算机软硬件的飞速发展,如此单调、功能低下的方法被迅速抛弃,取而代之的是图形 化监测画面,它能非常直观的向用户显示用户想要看到的数据。随着流程图专用绘图 工具的出现,监测画面所能提供的信息和表现的方式也日趋丰富。这些流程图绘制工 具主要包括a u t o q 气d 、m i c r o s o f tv i s i o 、组态王6 5 、力控组态软件等。 ( 1 j ) a u t o c a d a u t o c a d 具有广泛的适应性,它可以在各种操作系统支持的微型计算机和工作 站上运行,用于二维绘图、详细绘制、设计文档和基本三维设计1 5 】。它并非流程图的 专用绘制工具,因此在绘制流程图时显得效率不高。 ( 2 ) m i c r o s o f t s i o m i c r o s o f t s i o 是w i n d o w s 操作系统下运行的流程图和矢量绘图软件,它是 m i c r o s o f lo f f i c e 软件的一个部分【6 】。其功能强大,可绘制各式各样的流程图,目前它 的使用已遍布各行各业,并不局限于工业、商业和软件业等领域,使用它制作的流程 图包括程序流程图、电路流程图、工艺流程图、组织结构图、办公室布局图、商业行 销图等等,被称为是世界上最方便、快捷的流程图绘制软件。 ( 3 ) 组态王6 5 组态王6 5 是亚控科技在组态王6 0 】【系列版本成功应用后,立足于门户概念,整 个企业的自动化监测将以一个门户网站的形式呈现给使用者,并且不同工作职责的使 用者使用各自的授权口令完成各自的操作。它能逼真再现现场画面,使用户在任何时 间任何地点均可实时掌控企业每一个生产细节得以实现,现场的流程画面、过程数据、 趋势曲线、生产报表( 支持报表打印和数据下载) 、操作记录和报警等均轻松浏览。 在监测画面上组态王6 5 做了大量改进:支持大画面、导航图:用户可以制作任 意大小的画面,利用滚动条和导航图控制画面显示内容;绘制、移动、选择图素时, 画面自动跟踪滚动:方便的变量替换,可以单独替换某个画面中的变量,也可以在画 面中任意选中的图素范围内进行变量替换;自定义菜单,支持二级子菜单;系统提供 丰富的图素提示条文本,包括简单图素和组合图素;在画面中使用键盘和鼠标结合可 以任意选择多个图素进行组合、排列等操作。这些都是精益求精,追求细节的最好体 2 第一章绪论 现。 ( 4 ) 力控组态软件 力控组态软件是运行在w i i l d o w s 操作系统上的一种组态软件。使用力控,用户 可以方便、快速地构造不同需求的数据采集与监测系统。系统划分为控制层、监测层、 管理层三个层次结构。其中监测层对下连接控制层,对上连接管理层,它不但实现对 现场的实时监测与控制,且常在自动控制系统中完成上传下达、组态开发的重要作用。 使用力控组态软件创建的自动化工程,其所有操作画面,包括流程画面都是在图 形开发环境下制作、生成的,在力控组态软件中的图形开发环境d r a w ,它依照操作 系统的图形标准,采用面向对象的图形技术,为使用者提供丰富、强大的绘图编辑、 动画连接和脚本工具,提供右键菜单功能,帮助使用者简化操作。图形开发环境主要 包括脚本程序、动画连接、简单图形对象、复杂图形对象等。 经过数十年的发展,目前大多数实时监测系统能够向用户提供多种数据显示方 式,从不同的侧面显示数据。其中一些系统还可提供方便的显示组态功能,允许用户 利用各种显示方式自主的组织和查看数据。如此做法满足了某些用户的特殊需求,因 为不同的用户所关心的数据不同,所以设计监测画面的时应该考虑提供给用户自行组 织数据的操作功能。合理的组织和显示数据,使用户尽可能方便直观地查看数据,这 是目前开发监测画面的基本要求和主要方向。而随着绘图工具功能的不断强大,越来 越多的动态图像被创作出来,它能图文并茂、形象逼真地集中反映生产过程地实时数 据动态变化。因此动态图像被引入监测系统,成为了监测画面当前设计的主流。 在对以往的监测画面编辑系统进行研究后发现主要在于提供了交互式的图形系 统,使得用户在使用的时候能得到丰富的感观信息,方便了监测画面的绘制。目前已 有的一些通用的绘图软件工具或平台,例如a m t o c a d ,m i c r o s o f t s i o 等等,但这些 不是专门面向过程工业仿真对象的,譬如不具备对液位流动,化工设备阀门转动等动 态图的处理功能,使用起来不便。而其他一些具备良好动态效果的组态软件,例如组 态王,力控等等,由于追求软件的通用性,导致其并未对过程工业这一领域进行重点 的研究开发,其提供的图库虽然包含了各个领域的基本图元,但对于过程工业这一块 仅仅提供了泵,管道,阀门这几类的图元,还达不到覆盖整个过程工业监测画面绘制 的所需图元。 1 2 2 动态监测画面编辑系统的发展趋势 当前对于设计开发监测画面来说,会遇到以下困难:编程不规范,软件的可重用 性不强;画面开发工作量大,需要收集大量设备符号和图片。最好的解决方案就是将 应用程序构建在c o m 基础上,它具有语言无关性、进程透明性、可重用性的特点, 可使问题迎刃而解叼。c o m 是由m i c r o s o f t 提出的组件标准,它是按照组件化程序设 3 北京化工大学硕士学位论文 计思想,把复杂的应用程序设计成一些小的、功能单一的组件模块,各软件组件可用 统一的方式进行交互p j 。 在软件的图形开发环境中,使用参数化图库( 零部件库) 能大大加快产品设计速度, 提高设计质量,方便设计的修改。据统计,在一个产品中,己有零件、标准件的数量 占6 0 以上,化工和机械制造等行业,其比例更高。因而,零部件库被认为是一个国 家制造业中最重要的基础设施之一。目前,国内一些自主版权的图形开发环境都配有 自己的零部件库,但是这些零部件库的数据格式均不相同,导致这些开发环境间的设 计信息不能交换和共享,而且零部件的种类和数量也远远不能满足用户的需求,因此 建立通用图库是今后一段时期重点关注的问题。 为了实现监测软件图形开发环境的快速开发,可以利用以前完成的系统,提取共 性,形成平台内的通用组件,根据用户的需求和提供的参数,高效的实现软件的开发 工作。监测软件的图形开发环境是伴随着计算机技术的突飞猛进发展起来的,目前很 多新的技术不断地被应用到监测软件的图形开发中,例如商品化嵌入式图形开发组件 可以有效地解决工业p c 监测系统地工作效率、维护和升级等问题,彻底摆脱个人行 为的束缚,使工业p c 监测系统大踏步走入自动化系统高端市场【9 ,l 叫。x m l 技术将被 组态软件厂商善加利用【1 l 】,来改变现有的体系结构,它的推广也将改变现有组态软件 的某些使用模式,满足更为灵活的应用需求。监测组态软件的组态功能即人机图形界 面功能,包括根据实际控制网络及对象给出形象而具体的图形界面,方便操作人员进 行实时监测和控制1 1 2 1 3 1 ,这是今后监测画面的研究方向: 1 3 课题研究的目的意义和主要内容 1 3 1 研究的目的和意义 课题的目的是为监测软件的平台化提供监测画面的图形开发环境和显示环境,为 过程工业流程图的绘制和保存移植提供了一个图形开发环境。利用面向对象的建模方 法,设计并实现过程工业监测平台所需的监测画面编辑及显示功能,使之具有图形绘 制、图元编辑、动态效果设置和快速生成监测画面等功能。系统能够提供统一的图形 用户界面( g u i ) ,能快速生成用户需要的监测画面,支持监测画面中的设备图元与实 时数据连接,支持高效、快速、流畅的监测画面在客户端的动画显示,与其他子系统 ( 如数据采集子系统、数据服务子系统等) 共同构成过程工业监测平台。 1 3 2 课题研究的主要内容 课题研究的主要内容如下。 ( 1 ) 流程图编辑系统 此系统是为用户提供制作流程图的工具,具有图元生成功能与设备图库管理和编 4 第一章绪论 辑功能。图元的生成是指生成原始的化工流程图常用的仪器、设备的图元,设备图库 管理是指图元文件按类别存储在数据库中,以实现对图元的分类管理,设备图库的编 辑是指用户可对图库中的图元进行添加、删除和编辑。 图库的建立需要收集大量的化工设备图元和符号,并提供可扩展接口以方便用户 自行扩充图库。 ( 2 ) 监测画面动态效果 在流程图编辑系统中,用户绘制的流程图还是静态的,而其目的是要实现实时动 态的监测效果,所以必须加入各种动态效果的处理。动态效果的处理分为编辑和显示。 动态效果的显示种类大体可分为以下四类: 动态文字:用于强调监测点数据的重要性,起到突出显示的作用。 动态液位:用来显示数据的f 常范围和报警上下限等。 动态图片:用于强调监测点数据的直观显示效果,如阀门的启闭程度等。 动态管线:用于表示物流数据的类别和流速。 ( 3 ) 图形载入与存储 使用文件或者数据库方式存储用户编辑好的流程图,并通过数据服务中心将流程 图更新至各监测客户端。当有权限的用户在监测客户端重新编辑某一流程图时,可将 流程图载入编辑系统进行重绘。 ( 4 ) 流程图在监测客户端的显示 该部分完成对保存在数据库中绘制完成的流程图在监测系统的客户端上进行调 用。系统为监测客户端提供图形显示接口,并从客户端获取流程图数据后能根据数据 描述重新生成流程图。 5 第二章相关技术 第二章相关技术 2 1 图形编程基础 g d i + 是m i c r o s o r 的m 玎f r a m e w o r k 类库之一,用于图形编程。g d i + 被组织到6 个命名空间中,是一组在一起使用的判1 4 1 。这6 个命名空间如表2 1 所示: 表2 1g d i + 在tf r a m e w o r k 的6 个命名空间 旦坐圣:! 坠呈蜜里垒坐墨仑璺堡旦! q 里堡垫:堕堕堕坐塑堡 命名空间说明 s y s t e m d r a w i n g提供基本的图形功能,包括绘图表面、图像、颜色、笔 刷、钢笔和字体 s y s t e m d r a w i n g r a w i n 9 2 d 提供高级光栅和欠量图形功能 s y s t e m d m w i n g 1 m a g i n g 提供高级图像功能,其底层的基本功能是在 s y s t e m d r a w i n g 命令空间中提供的 s y s t e m d r a w i n g p r i n t i n g提供打印和打印预览功能 s y s t e 札d r a w i n g t e x t提供高级字体功能,其底层的基本功能是在 s y s t e m d r a w i n g 命令空问中提供的 s y s t e m d r a 、i n g d e s i 印 提供的功能可增强对自定义控件的设计时支持,包括开 发定制u l t y p e e d i t o r 类的类,它允许在n l 玎的设计窗口 中定制白定义控件的行为 g d i + 的主要功能如下所示: ( 1 ) g d i + 提供了三种绘图表面:窗口、位图和打印机。 ( 2 ) g d i + 提供的工具可以在任何绘图表面绘制二维线框图”。这包括绘制线条、 许多图形和多边形、曲线、各类笔刷和钢笔。此外还能进行许多类型的转换,方便、 快捷地创建复杂的效果。 ( 3 ) g d i + 中的文本绘制功能进行了扩展( 反锯齿技术尤其令人印象深刻) 。 ( 4 ) g d i + 支持图像和位图:可以在任意绘图表面上创建、读取和绘制图像。 ( 5 ) g d i + 支持打印:开发人员只需付出很小的努力,就可以轻松的获取打印预 览功能。 ( 6 ) g d i + 可以处理各种n e t 应用程序。 g d i + 是基于g d i 的f 1 5 】,实际上,g d i + 是包装g d i 的包装器( 类似于m f c 把 g d i 及其自身的类包装起来的方式) 。 g d i 提供了一个抽象层,使应用程序的开发人员看不到需要为应用程序所使用的 某种显示设备编写的程序。因此,当希望应用程序在屏幕上绘图时,应用程序就会执 行相应的g d i 函数,而g d i 会确定如何于视频卡进行通信。g d i 一般时通过c 或c + + 程序执行的( 但许多语言,例如c 挣,玎等,也可以直接使用g d i ,其方式与使 用w 协d o w s a p i 的其他部分大致相同) 。 g d i + 优于g d l ,主要有以下两个优点: 7 北京化工大学硕士学位论文 首先,g d i + 包含的类能实现直接用g d i 很难编写的功能,提高了g d i 的功能。 如果在g d i 程序中使用相同的功能,需要有一个支持该功能的库,否则就需要自己编 写这个库。例如g d i + 在绘制半透明的图形、访问渐变笔刷、支持更多的图像格式、 更容易编写图形路径和区域、进行更强大的转换等方面都有了很大的改进。 其次,g d i + 完全集成到玎f r a m e w o r k 中了,它是面向对象的编程方式,而g d i 是一种相当复杂、不易理解的技术,而g d i + 可以使开发人员的工作更易完成。 g d i + 集成到n e tf r a m e w o f k 中,以及对编程界面的改进,还提供了其他优点: g d i + 使用面向对象的类层次结构,包括创建对象、设置它们的属性和调用它们的 方法;g d l + 使用方法重载,在调用g d i + 对象的方法时,常常可以选择带有最合适的 参数集的方法重载;在同一操作中既绘制图形的轮廓,又填充其内部区域,这两个操 作并没有本质上的联系,g d i + 认识到了绘制轮廓和填充区域之间的区别,为这两个任 务提供了两个不同的操作,从而使绘制表面灵活了许多;g d i + 为开发人员隐藏了一些 状态管理方面的内容。使用g d i 时,会得到绘图表面的设备信息,然后把这些设备信 息作为一个参数传送给进行绘图的函数。这些设备信息维护了许多状态,例如当前的 钢笔、当前的笔刷、当前的点( 在绘制线条时使用) 。g d i + 则为开发人员隐藏了这种 复杂性,提供了一种更简便的方法,消除了因为开发人员没有设置所有必要的状态( 由 此会随机“继承”代码其他部分中的状态) 而产生的错误。例如,g d i + 中的每个线条绘 制方法都需要一个p e n 对象。g d i + 知道g d i 的状态中当前使用的是什么钢笔,如果 作为参数传送给g d i + 方法的钢笔不同于设备信息中当前选择的钢笔,g d l + 就会自动 修改设备信息中的钢笔。如果传送给方法的钢笔与设备信息中当前选择的钢笔相同, g d l + 就不需要修改设备信息中的钢笔。 在n e t 中使用g d i + 时,除了一个叫做g d l 的库外,还有两个用于编程的库,其 名称都是g d i + 。其中一个g d i + 编程库时n e tg d i + 库,库里面的命名空问和类是作 为m 玎f f 锄e w o r k 的一部分发布的。另一个g d i + 库出自于m i c r o s o f tf o u n d a t i o n c l a s s e s ( m f c ) 中。m f c 包含许多封装g d i 的c + + 类,只是这个类库的名称碰巧也 叫g d i + ,m f cg d l + 非常类似于n e tf r a m e 、阳r k 所带的托管g d l + ,其功能也相当, 但是这两个库是不同的,需要区别使用。 g d i + 得益于建立许多图形编程界面的经验,它是一组非常整洁一致强大的高性能 类,提供了开发人员所需要的大部分图形功能。但是,g d l + 也有其不足之处,它的功 能在一些地方受到限制,在g d i + 不能满足需要的地方,就可以借助d i r e c t x 来弥补。 d i r e c t x 是另外一个于图形编程有关的m i c r o s o f t 技术,它于g d i + 在作用和编程 界面上有很大的区别。d i r c c t x 是一个多媒体a p i 套件,其应用程序具备访问p c 硬件 的功能( 例如声音和图形加速卡) ,允许它们传送高性能的输出。这种高质量的显示 方式常常可以在p c 游戏中见到,其3 d 效果是应用程序的一个重要组成部分。在本 文的后面还将进一步研究d 溉c t x 在图形显示方面的应用。 8 第二章相关技术 所以,从多客户、用于w i n d o w s 应用程序的商业化图形来讲,g d l + 和d n c t x 都是编写图形应用程序的库,而d i r e c t x 能很好的弥补g d i + 在图形刷新速度和质量上 的不足。 2 2djr e c t x 技术 2 2 1d i 弛c t xs d k 简介 d i r e c t xs o f 时a r ed e v e l o p t ( s d k ) 是由微软公司开发的用途广泛的a p i ,用于开 发游戏、多媒体及一些应用程序的开发包,它包含有d i r e c tg r a p h i c s ( d i r e c t3 d + d i r e c t d r a w ) 、d i r e c ti n p u t 、d i r e c tp l a y 、d i r e c ts o u n d 、d i r e c ts h o w 、d i r e c ts e t u p 、d i r e c tm e d i a o b j e c t s 等多个组件,提供了一整套的多媒体接口方案。下面简要介绍一下s d k 中的 部分组件: ( 1 ) d i r e l :td r a w :d i r e c t x 中重要组件之一。它为显卡提供了二维、高性能的接 口,支持视频内存直接存取、快速位快传输操作、后台缓冲、交换、调色板管理、剪 裁、覆盖和色键。 ( 2 ) d i r e c t3 d :一种基于0 l ec o m 的应用程序接口,设计用于实现设备独立 传输、高度优化、基于软件实现的实时3 d 再现,并使得3 d 硬件能够快速透明地存 取。对于那些要求更多控制3 d 目标和情景以及要求直接存取3 d 加速器卡的开发者 来说,这种a p i 使开发者很容易将现行的3 d 应用移至w i n d o w s 平台上。 ( 3 ) d i r e c tg r a p h i c s :在d i r e c t x 9s d k 这一版本中,d i r e c td r a w 和d i r c c t3 d 被 整合在d i r e c tg r a p h i c s 组件中,这个组件包含了d i r e c t3 d 的扩展,可以更好的适应图 形编程。 ( 4 ) d i r e c t i n p u t :支持交互式的输入设备,包括鼠标、键盘、操作杆等设备。 d i r e c t x 有着以下几点特色:可直接读写显存,大幅提升图形操作的速度;支持 硬件加速,使开发人员不用去考虑用户的计算机设备;网络联机功能,使开发多客户 商业化图形的方法简单化。当然,d i r e c t x 也有其不利的一面,它的帮助文件易读性 不高,例程少且应用较难1 1 6 】。此外,d i r e c t x 是微软开发,只支持在w i n d o w s 环境下 运行,有一定的局限性。 d i r e c t xs d k 提供的m a n a g e dd i r e c t xs a m p l ef r a m e w o r k 是一个功能强大的画面 显示引擎,显示效果极佳且效率高,有望成为d i r e c t x 的m f c ,因此利用s 锄p l e 丘a m e w o r k 打造符合系统的显示框架,具有极佳的实用效果。 2 2 1d i 聆c t x 技术应用 d i r c c t x 编程需要具备一些几何学原理,对于简单的二维图形的几何变换算法在 此就不作介绍了,下面介绍创建图形所需的比较复杂的几何学概念f 1 7 1 。 9 北京化工大学硕士学位论文 三角形光栅化规则:d i r e c tg m p h i c s 使用自上而下、从左到右的规则进行几何填 充,这和g d l 、o p e n g l 使用的矩形填充规则相同。在d i r e c tg r a p h i c s 中,像素的中 心是决定点,如果中心在三角形内,该象素就属于三角形部分。像素中心是坐标刻度 的整数值。 图2 1 是一个左上角坐标( o ,o ) 右下角坐标( 5 ,5 ) 的矩形,它包含了2 5 个像 素。矩形宽度定义为自右向左减小,自底向上减小。按照自上而下、从左到右的规则, 顶部以水平刻度的竖向位置为参照,左部以垂直刻度的横向位置为参照。只有水平线 才能成为顶部边界线,通常大多数三角形仅有左右边界。 0 12 3 45 一 一 l l i 、_ 尹 l i 、 l 1 , l、| i i l i 气 i 1 t l i l v _ _ 图2 1 三角形光栅化规则示意图 f i g 2 - lt l h em l eo ft h et 血n 酉er a s t e ru n i f o m l i t y 当三角形穿越像素中心时,按照规则决定d i r e c tg r a p h i c s 的动作。图2 1 有两个 三角形,一个坐标为( 0 ,o ) ,( 5 ,0 ) ,( 5 ,5 ) ,另一个坐标为( o ,5 ) ,( o ,0 ) ,( 5 , 0 ) 。因为共享边是第一个三角形的左边,所以第一个三角形有1 5 个像素( 黑色表示) , 反之第二个只有1 0 个像素( 灰色表示) 。 如果你定义一个左上角坐标为( o 5 ,o 5 ) 右下角坐标为( 2 5 ,4 5 ) 的矩形,矩形 的中心点是( 1 5 ,2 5 ) 。当d j r e c tg r a p h i c s 光栅和矩形镶嵌时,四个三角形中每个像素 的中心都显然位于每个三角形内,自上而下、从左到右的规则是不需要的。如果你移 动图中的矩形,使它左上角坐标位于( 1 0 ,1 o ) ,右下角坐标位于( 3 0 ,5 0 ) ,中心点 位于( 2 0 ,3 0 ) ,d i r e c tg r a p h i c s 将应用自上而下、从左到右的规则,矩形中的大部分 像素将跨越2 个或多个三角形的边界范围。 设备( d e v i c e ) :设备是d i r e c tg r a p h i c s 的渲染组件,它封装存储了渲染状态。另 外设备执行变换和光照操作,将图像光栅化为表面。以下是设备使用的细节: d i r e c tg r a p h i c s 设备在架构上包含1 个变换模块,1 个光照模块,1 个光栅化模块。 d i r e c t x 当前支持2 种d i r e c tg r a p h i c s 设备类型:一种是硬件设备,具有硬件加速光栅 l o 第二章相关技术 和软硬件顶点处理着色;另一种是引用设备。如果运行程序的计算机配置了支持 d i r e c t 3 d 的图形适配器,程序就可以用硬件设备来进行图形显示操作,通过硬件设备 可获得显示效果的最高性能。引用设备和软件设备不同,引用光栅支持所有d i r e c t 3 d 特性,但因为这些特性可以通过软件准确完成,因此引用光栅仅用于特性测试和示范 目的。 要创建一个d i r e c tg r a p h i c s 设备,托管代码程序首先建立一个p r e s e n t p a r a m e t e 巧 对象,它包含了有关该设备的描述参数。例如将参数种的w i n d o w e d 属性设置为t m e , 显示的窗体尺寸就小于全屏,如果属性设置为f a l s e ,那么建立的窗体将替代所有非前 端显示窗体并驻留于它们之上,即使当前窗体没有被激活。在建立设备时,输入给 d e v i c e ( i n t 3 2 ,d e v i c e t v p e ,c o n t r o l ,c r e a t e f l a g s ,p r e s e n t p a r 栅e t e r s f l ) 的标识指定了首选 硬件设备,以软件方式进行顶点处理,值得注意的是如果通过指定参数c r e a t e f l a 笋 的属性h a r d w a r e v e f t e x p f o c e s s i n g 告诉系统使用硬件顶点处理,将会在支持硬件顶点 处理的显示卡上获得很大性能的改进。 一个程序必须执行一系列任务来选择一个合适的设备,程序可以查询硬件检测支 持d i r c c tg r a p h i c s 的设备类型,这部分信息包含了于列举显示适配器和选择设备有关 的主要任务。开始,程序必须将系统内的显示适配器列举出来,一个适配器就是一个 硬件物理块。程序用m a n a g e r 对象的a d a p t e r s 属性列举初每个适配器支持的显示模式, 可以通过a d a p e r l i s t c o l l e c t i o n 对象查询适配器集合。程序使用d e v i c e d e v i c e c 印s 属 性来检查适配器上的设备能够达到的功能级别。该属性返回一个描述设备功能的c a p s 结构,那些无法支持所需功能的设备将不包含一个合法结构。设备总是渲染它支持的 列举显示模式的格式表面。如果设备能够渲染该格式,那它就能保证所有通过 d e v i c e c a p s 返回的功能可用。最后,程序使用c h e c k d e v i c e m u l t i s 锄p l e t y p e 方法可以 确定渲染格式是否支持诸如全屏抗锯齿等多重采样技术。完成上述步骤后,程序应该 有了一个可以操纵的显示模式列表。此后就可以根据需要渲染2 d 或者3 d 场景和使 用各种显示特效了。 2 3x 札技术 x m u e x t e n s i b l em a r k u pl 肌g i i a g e ) 是由嵌套的标记元素构成的自描述标记文本, 它是h l t e m e t 上数据表示和交换的主要标准n 踟。由于x m l 的自描述性和可扩展性, 它越来越广泛的运用于存储数据、携带数据和交换数据等方面。 x m l 用于数据交换:通过x m i 我们可以在不兼容的系统之间交换数据。在现实 生活中,计算机系统和数据库系统所存储的数据有n n 种形式,对于开发者来说,最 耗时间的就是在遍布网络的系统之间交换数据。把数据转换为x m l 格式存储将大大 减少交换数据是的复杂性,并且还可以使得这些数据能被不同的程序读取。 1 1 北京化工大学硕士学位论文 x m l 用于共享数据:通过x m l ,纯文本文件可以用来共享数据。既然x m l 数 据是以纯文本格式存储的,那么x m l 提供了一种与软件和硬件无关的共享数据方法。 这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。同样,我们升级 操作系统、升级服务器、升级应用程序、更新浏览器就容易多了。 x m l 可以充分利用数据:使用x m l 你的数据可以被更多的用户使用。既然x m l 是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的 设备所利用,而不仅仅是基于h t m l 标准的浏览器哦。其他客户端和应用程序可以把 你的x m l 文档作为数据源来处理,就像他们对待数据库一样,你的数据可以被各种 各样的“阅读器”处理,这时对某些人来说是很方便的,比如盲人或者残疾人。 本系统应用x m l 文件来保存用户编辑完成的流程图。在图像保存方面,x m l 有 着其独特之处,因为它具有结构与显示内容分开的特性和数据的自描述性。结构与显 示内容分开的特性可以减少基于x m l 的应用程序内的维护。数据的自描述性可以根 据实际需要自定义图像的元数据描述形式,形成其独特的d o c u m e n tt y p ed e f i n i t i o n ( d 1 巾) 。d t d 可以看成一个或者多个x m l 文件的模板,在这里可以定义x m l 文件 中的元素、元素的属性、元素的排列方式、元素包含的内容等等。它为一个x m l 文 档或者文档集合建立一套规则。它本身不是独立的技术规范,而是属于规范的一部分, x m l 文档中的文档类型声明既可以是标记约束,也可以是带有标记约束的外部文档。 这两种约束的总和就是d ,m 。它规定了x m l 文档的构建方式。 x m l 文档是遵循d t d 结构的,也就是说d t d 中定义了x m l 文档中所有元素、 属性、标记、实体以及相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PHP开发面试题及详细答案(企业真实版)
- Photoshop高级技能考核试题(完整版)
- 硅酸铝棉生产工安全操作规程
- 2026年辅警招聘考试题库试题含答案详解
- 选矿过滤脱水工职业资格初评考核试卷及答案
- 环境保护知识竞赛试题含答案
- Part1 试题及详细答案解析
- Oracle 19c OCP认证考试题库(含详细答案解析)
- 重性精神障碍家属心理支持中国专家共识(2025版)
- 仪表运维台账管理员操作规程
- 加气站进入受限空间作业安全管理办法
- 《服务业员工情绪劳对工作倦怠的影响实证探究(含问卷)》11000字(论文)
- 标杆地产五星级酒店精装修标准
- YY/T 0853-2024医用静脉曲张压力袜
- 学习签到表格
- 新译林版高一英语必修一U4 Teen faints reading课件
- 考古学导论PPT全套教学课件
- 大班音乐优质课《动物猜谜歌》教学PPT课件反思【幼儿教案】
- 注塑机液压系统
- 超星尔雅学习通《社会科学方法论》章节测试含答案
- 内燃叉车四冲程柴油机工作原理课件
评论
0/150
提交评论