




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京化工大学 硕士学位论文 化工流程图绘制系统的实现 姓名:王伟 申请学位级别:硕士 专业:计算机应用技术 指导教师:许南山 20050606 北京化工大学硕士学位论文 化工流程图绘制系统的实现 摘要 流程图是用图的形式将一个过程( 如工艺过程、检验过程、质量改 进过程等) 的步骤表示出来的图形分析工具,通过对过程实际情况的 详细了解,来监测生产过程,保障生产合理、安全、稳定地进行。 本课题主要应用计算机图形学的相关理论及算法、数据库技术、面 向对象程序设计等技术,实现了化工流程图的绘制系统,系统主要的 功能为w i n d o w s 系统中图形的绘制和图元的生成,数据库中图形存取、 化工图库的建立和图元的存储,流程图在b s 模式生产实时监测系统 中的应用。 论文详细的论述了化工流程图绘制系统的整体设计方案和实现方 法,综合运用了v c + + 6 0 、s q ls e r v e r 2 0 0 0 、n e t 、以及a d o 技术进 行开发。利用v c + + 6 0 的面向对象技术和m f c 中对w i n d o w sa p i 和 g d i 的支持开发实现了交互图形的绘制和用户界面的设计。并结合 s q ls e r v e r 2 0 0 0 数据库和a d o 技术实现了图形的存取、化工图库的建 立和应用。利用n e t 技术和数据库完成了流程图在b s 模式下的应用。 实践证明该系统能较好的完成化工流程图的绘制,操作简单方便, 具有较好的实用价值。 北京化工大学硕士学位论文 关键词:流程图,图元,g d i ,c d c 北京化工大学硕士学位论文 r e a l i z a t i o n0 fc a df o rf l o wc h a r to fc h e m i c a l e q u i p m e n t a b s t r a c t f l o wc h a r ti sag r a p h i ca n a l y s et o o lw h i c hd e s c r i b e st h ep r o c e s s ( s u c h a st e c h n i c sp r o c e s s ,t e s t p r o c e s s ,q u a l i t yp r o m o t i n gp r o c e s s ) w i t hg r a p h b y t h ed e e p l yu n d e r s t a n d i n go fr e a ls t a t u sa n dt h em o n i t o r i n go f p r o d u c t i o n p r o c e s s ,i ti sh e l p f u lt oe n s u r et h ep r o d u c t i o ni sc a r r i e do u ti nar e a s o n a b l e , s a l t y , a n ds t a b l ew a y t h ef l o wc h a r to fc h e m i c a le q u i p m e n ti sr e a l i z e di nt h es y s t e mb yt h e t e c h n o l o g y o fc o m p u t e r g r a p h i c s ,d a t a b a s e a n do o rt h e r ea r et h r e e f u n c t i o n s ,t h ef i r s ti st h ed r a w i n go fg r a p h i c sa n dt h ec r e a t i o no f g r a p h i c f i l ei nw i n d o w so s t h es e c o n di st h e s a v i n go fg r a p h i c sa n d t h ec r e a t a t i o n o f g r a p h i cm e t a f i l ei nd a t a b a s e t h et h i r di st h ea p p l i c a t i o no f f l o wc h a r ti n r e a l - t i m es u p e r v i s o r ys y s t e mb a s e do n n e t p l a t f o r m t h et h e s i sd i s c u s s e st h ew h o l ed e s i g na n dt h er e a l i z a t i o no ft h es y s t e m o fc a df o rf l o wc h a r to fc h e m i c a l e q u i p m e n t w i t h t e c h n o l o g y o f i “ 北京化工大学硕士学位论文 v c + + 6 0 ,s q ls e r v e r 2 0 0 0 ,n e ta n da d o t h er e a l i z a t i o no fi n t e r a c t i v e d r a w i n g ( w i t hm o u s e ) a n d t h ed e s i g no fu s e ri n t e r f a c ed e s i g na r eb a s e do n t h eo o po fv c + + 6 0a n da p i ,g d io fm f c w i t hs q ls e r v e r 2 0 0 0a n d t e c h n o l o g yo fa d o ,t h eg r a p h i cs a v i n g ,t h ec r e a t i o na n da p p l i c a t i o no f g r a p h i c d a t a b a s ea r er e a l i z e d t h ef l o wc h a r to fb sm o d ec o m e si n t ob e i n g w i t ht h e h e l po f n e t a n dd a t a b a s e t e c h n o l o g y i th a sb e e n p r o v e db yp r a c t i c et h a tt h ed r a w i n go f f l o wc h a r ti sp e r f e c t a n dt h es y s t e mi sc o n v e n i e n t t h es y s t e mi n t r o d u c e di nt h et h e s i sc o u l db e u s e dw i d e l y k e y w o r d :f l o w c h a r t ,g r a p h i cm e t a f i l e ,g d i ,c d c 北京化工大学硕士学位论文 符号说明 b s :浏览器,服务器( b r o w s e r s e r v e r ) c s :客户端朋务器( c l i e n t s e r v e ) n e t :微软的一项技术框架 m i s :矢量可标记语言( v e c t o rm a r k u pl a n g u a g e ) c a d :计算机辅助设计( c o m p u t e r a i d e dd e s i g n ) a p i :w i n d o w s 应用程序编程接口( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) g d i :图形设备接口( g r a p h i c s d e v i c ei n t e r f a c e ) 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 t 基础类( m i c r o s o f tf o u n d a t i o nc l a s s ) c g m :标准图形文件结构( c o m p u t e rg r a p h i c sm e t a f t l e ) a d o :数据库对象控件( a c t i v e xd a t ao b j e c t s ) 北京化工大学 学位论文原创性声明 好7 3 7 1 5 3 本人郑重声明:所呈交的学位论文,是本人在导师的 指导下,独立进行研究工作所取得的成果。除文中已经注明 引用的内容外,本论文不含任何其他个人或集体已经发表或 撰写过的作品成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到本声明的 法律结果由本人承担。 学位论文作者签名: 矽巧年月日 北京化工大学硕士学位论文 第一章绪论 1 1 选题背景与发展现状 随着计算机技术的迅猛发展,人们的生活方式和社会的生产方式及管理方式都 发生了革命性的变化。在社会经济领域电子商务( e c o m m e r c e ) 得到了广泛的应 用,网上订货、网上销售等概念越来越被人们所接受。在现代工业生产中设备大 型化、生产连续化、过程自动化的趋势越来越明显。在管理方面,各类信息管理 系统( m i s ) 、生产监测系统、故障诊断系统的应用提高了生产效率、降低了生产 成本、保证了产品的质量,同时也提高了生产过程的可控性。 近几年,i n t e m e t 的发展非常神速,是当今计算机界的热点,每天都有大量的 用户加入i n t e m e t 网络,使得i n t e r n e t 上的信息量飞速增长。计算机技术人员从 i n t e r n e t 的巨大成功中看到了信息系统的发展方向,纷纷借鉴i n t e r n e t 的经验,利 用i n t e r n e t 的技术和产品构筑企业内部的i n t e r n e t ,即所谓的i n t r a n e t 。i n t r a n e t 的建 立对传统的m i s 产生了巨大的冲击,代表了管理信息系统发展的新趋势。将具有 强大存储和管理能力的数据库应用于i n t r a n e t 上,应用b r o w e r s e r v e r ( b s ) 模式开发 系统,不仅实现了大量信息的网上发布,而且也解决了上述c s 模式遇到的各种 问题。 生产实时监测管理子系统旨在将实时生产参数( 温度、压力、流量、液位等参 数) ,通过计算机主于网络通讯,采集并装入实时库表,然后通过图形显示并网上 发布,授予相关管理人员及厂领导操作权限可以在线监视生产运行状况,及时对 生产状况进行分析并作出决策。几乎所有的实时监测系统,为了使用户能够方便、 直观地查看各监测点的实时值,都会提供诸如流程图、棒图、实时曲线、历史曲线、 数据列表、记录报表、报警浏览等方式将设备运行情况展现给用户。 流程图:以分页方式显示带有实时工况参数的工艺图,工艺图上各设备数据实 时刷新。以一个静态画面作力背景底图,该画面通常是某一段流程,也可以是任 何其他画面,如厂区地理分布图、投入产出关系图等。动态数据以各种显示方式 2 北京化工文学硕士学位论文 组织到背景域面上,构成完整的图文式显示。流程图显示方式是综合查看实时数 据的最常用和最有效的工具并可以通过热点链接迅速切换到相关的显示画面上。 可任意增减实时参数,拖动位号以改变数据点的位置。 在基于c s ( c l i e n t s e r v e r ) 模式的系统中流程图是将用第三方软件绘制好的流 程图复制在系统中然后调用,这样比较容易实现,但流程图是静态的,修改比较 困难。而在b s ( b r o w e r s e r v e r ) 下,由于图形是显示在客户端浏览器上,信息交 互又是通过h t t p 这种无状态的协议,要通过下载图片的方式在客户端来显示流 程图,并且不易根据实际情况更改流程图以体现图上的变化。为满足生产实时监 测系统发展的实际需要,方便、高效的绘制、修改流程图,并能够在浏览器上方 便的浏览,提出了化工流程图的绘制和在b s 下应用的问题。 流程图是用图的形式将一个过程( 如- v 艺过程、检验过程、质量改进过程等) 的步骤表示出来的图形分析工具,通过对过程实际情况的详细了解,来监测生产 过程,保障生产合理、安全、稳定地进行。 早期的流程图绘制是用制图软件( 如a u t o c a d ) 完成的,没有专门的制作流 程图的软件,十分的不便,之后出现了在a u t o c a d 之上开发的专门用于绘制流程 图的软件。另外也出现了以m i c r o s o rv i s i o 为首的独立的专门制作流程图的软件。 流程图在各个领域有着广泛的应用,而各个领域的流程图却形态各异,很难具有 通用性,在工业领域,不同行业有不同的表示形式,有不同的设备标识,所以对 于流程图的有着广泛的制作方法。以下列举了一些以前绘制流程图的主要工具和 手段。 1 a u t o c a d 该软件是工程技术人员最为熟悉的、应用最为广泛的一套软件,它是绘制工 程图纸普遍应用的软件,其功能较为强大与完善,也应用于流程图的绘制,不过 其效率并不是很高,且操作不是很简单。 2 化工流程图绘制软件h e p i d l 4 该软件为化工流程图辅助设计系统,适用于化工、轻工、石油、制药行业的 流程图绘制,采用化工部h g2 0 5 1 9 3 2 9 2 管道及仪表流程图中管道、管件及管 道附件图例,并结合实际应用设计。 采用数字化的设计,在管线绘制时记录管道信息,如管道代号、管径、等级。 在向管线插入管件时,软件自动判断管件规格,自动断开管线插入、自动标注。 软件具有管件的编辑功能,可以在管线上移动、删除管件,此时不必对管线做任 北京化工大学额士学位论文 何编辑。软件图库提供标准图幅图框,常用设备图块。图块符号可以扩充。运行 环境为a u t o c a dr 1 4 。 3 p f d p & i d 软件 p d s o f tp f d p & s dv 1 5 是建立在a u t o c a dr 1 4 平台上c a d 系统,可广泛地用 于石油、化工、石化、天然气、海洋平台等领域的工艺流程图、管道仪表图的设 计。p f d p & i d 主要特点: 高效性:p d s o f t 工艺流程设计软件功能较为完善,在细节上考虑细腻,用户可 以在短时间内掌握p d s o f tp f d p & i d 的使用,绘制完流程图后,表格可以自动生 成。提供定制元件、元件组和设备的功能:p d s o f tp f d p i d 提供专门的图形库管 理环境,使用户在能够通过交互而不是编程完成定制新元件、元件组及设各。 准确、快捷的材料统计:能够产生所需的材料统计表,表格的格式及填写内容 均可定制。材料统计自动化程度高、统计精确、规范,表格定制方便灵活。 4 c a d p i d c a d p i d 是一款基于a c a d 2 0 0 2 和a c a d 2 0 0 4 平台从事工程设计、绘制管道仪表 流程图的专业软件。它特别为工程技术和设计院设计人员及大中专院校师生设计, 无论是在图上添加设备、绘制管线、安装阀门、安装管件,还是添加仪表、管线 拌热、标示管线号、标示管内介质流向等功能应有尽有,是从事工程设计很好的 助手:它内建有国家标准图幅库、设备符号库、阀门库、仪表库,符合中国石化 总公司和化工部规定:特点是界面美观、a c a d 工具条操作、w i n d o w s 窗口输入、 操作简单,即使您是新手,也能绘制出专业水平的流程图,适用的操作系 统:w i n d o w s9 x 2 0 0 0 n t x p 。 5 m i c r o s o f tv i s i o v i s i o 是v i s i o 公司在9 1 年推出的用于制作图表的软件,在早期它主要用作 商业图表制作,后来随着版本的不断提高,新增了许多功能,在v i s l 0 4 0 时已是 个多功能的流程图制作软件,进入国内后很受软件工作者的欢迎,现在国内普遍 使用的是工作于w i n d o w s 2 0 0 0 环境下的v i s l 0 2 0 0 0 ,其完全安装容量将近1 0 0 m , 它的介面很友好,操作也很简单,但却具有强大的功能,可以绘出各种各样的流 程图,它的使用已经遍布各行各业,并不仅仅局限在工业、商业、软件业和电子 设计领域,可以用它制作的流程图包括工艺流程图、电路流程图、程序流程图、 组织结构图、商业行销图、办公室布局图、方位图在微软公司的o f f i c e 9 7 中 就集成了v i s l 0 4 0 的组成部分。v i s i o 公司推出了v i s l 0 2 0 0 0 ,它分为标准版, 技术版,专业版和企业版,v i s l 0 2 0 0 0 被宣称为是世界上最快捷、最容易使用的流 程图软件,并比以前的版本增加了更多的功能。v i s i o 由于它的直观界面,即使初 次使用的人也可以较快学会使用它。 北京化工大学硕士学位论文 v i s l 0 2 0 0 2 功能更强大,作为m i c r o s o f to f f i c e 家族的成员,v i s i o2 0 0 2 拥 有与o f f i c ex p 非常相近的操作界面,所以接触过w o r d 的人都不会觉得陌生。跟 0 f f i c ex p 一样,v i s i o2 0 0 2 具有任务面板、个人化菜单、可定制的工具条以及 答案向导帮助。 v i s i o2 0 0 2 是一个大型软件,它可和其他的m i c r o s o f t 产品一 起更有效地协同工作,例如:o f f i c ex p 、m i c r o s o f tp r o j e c t2 0 0 0 和a c t i v e d i r e c t o r y 。可以通过与o f f i c e 文档链接,读取存储在文档中的相应数据,并自 动地生成图表,把数据可视化! v i s i o2 0 0 2 具有强大的w e b 发布功能,为文档共 享与共同工作提供了方便,其开放的用户自定义的接口为v i s i o 应用程序的开发 提供了更大的灵活性。 总之,经过几十年的发展,流程图软件已经朝着更加成熟的方向发展,由原来 的通用软件向专业软件方向发展,必将发展成更专业、高效、灵活的方向发展, 同时要求和行业软件集成性更好。 本课题为适应计算机技术在工业领域的不断深入的应用,建立一套适应化工行 业和能在b s 结构生产实时监测系统下应用的流程图软件。 1 2 课题研究的内容及特点 为满足生产实时监测系统发展的实际需要,方便、高效的绘制、修改流程图, 并能够在浏览器上方便的浏览。本课题要研究的内容如下: 图形的生成算法: 研究图形生成的理论、图形变换、裁剪方法及w i n d o w s 系统中图形绘制的实 现方式。 数据库的建立和图形存储方法: 在数据库中建立相应的表,将系统中的图形的相关元素按一定的组织结构保存 在数据表中。 图元的生成: 该部分生成原始的化工流程图常用的仪器、设备的图元,并可对图库中的图元 进行添加、编辑、删除。 图库的管理: 图元文件按类别存储在数据库中,该功能实现对图元的分类管理。 绘图功能: 主要是完成流程图文件的建立,完成图形的绘制、编辑,并完成流程图的保存、 北京化工大学硕士学位论文 打印等操作。 流程图在生产实时监测系统中的应用: 该部分完成对保存在数据库中绘制完成的流程图在b s ( b r o w e r s e r v e r ) 下的 生产实时监测系统进行调用,将流程图作为背景显示在客户端浏览器上。 本课题研究的流程图绘制系统具有以下特点: 在产品设计过程中,使用参数化图库( 零部件库) 能大大加快产品设计速度,提 高设计质量,方便设计的修改。据统计,在一个产品中,己有零件、标准件的数 量占6 0 以上,化工和机械制造等行业,其比例更高。因而,零部件库被认为是 一个国家制造业中最重要的基础设施之一。目前,国内一些自主版权的c a d 系统 都配有自己的零部件库,但是这些零部件库的数据格式均不相同,导致这些c a d 系统问的设计信息不能交换和共享,而且零部件的种类和数量也远远不能满足用 户的需求。本系统实现了一个通用的建立图库的工具。 为适应计算机技术在工业领域的不断深入的应用,本系统实现了一种能在b s 结构的生产实时监测系统下应用流程图的方法,具有广泛的应用前景。 6 北京化工丈学硕士学位论文 第二章图形编程基本技术 2 1 二维图形的几何变换的算法“1 几何变换是在坐标系不变的情况下,由形体的几何位置或者比例改变而引起的 变换,例如图形的放缩、移动、旋转等,以及这些变换的组合变换。它们都是图 形变换的基础。 2 1 1 二维图形的几何基本变换 被显示的物 本本身由一组坐标点所定义。几何变换的过程实际就是针对这些点 计算新的坐标位簧的过程,可以按需要对物体进行指定大小和方向的变化。二维 基本变换包括了三种变换,即平移、变比和旋转。这些变换采用的数学基础是线 性方程组和矩阵,考虑到通用性,对二维图形变换采用3 3 的矩阵。 1 平移变换( t r a n s l a t i o n ) 平移是物体从一个位置到另一个位置的直线运动。把一个点从坐标位置( x ,y ) 平移到新的位置( x ,y ) ,只需在原坐标值加上一个平移距离,即d x 和d y ,那么 x - - x + d x y = y + d y ( 2 - 1 ) 式( 2 1 ) 中平移对( d x ,d y ) 也称之为平移矢量或者移动矢量。 要把一个多边形进行平移,需要对这个形体的每条线的端点坐标都加上一个指 定的平移距离。如图2 - 1 所示。由曲线给定的形体的平移需要改变形体的定义坐标, 比如要改变一个圆或者椭圆的位置,只需要平移它们的中心坐标,而在新的位置 上重新绘制该图形即可。平移距离可以用任意实数给定,比如正数、负数或者零 都可以。如果一个图形的平移超过了设备坐标的显示限制,系统将送回出错信息, 并把超过显示限制区的图形部分剪裁掉。 北京化工大学硬士学位论文 2 变比变换( s c a l i n g ) r a 、r b 、 图2 - 1 形体位置( a ) 平移到位置( b ) 改变一个物体的大小的变换称为变比,也称为比例变换或者比例缩放。对一个 多边形实施这种操作是把多边形的每一个边界顶点的坐标值( x ,y ) 都乘上变比 因子s 。和s 。产生变换后的坐标值为( x ,y ) ,即 x 2 x 。s x ,y _ y s v ( 2 2 ) 式( 2 - 2 ) 中,变比因子s 。对形体在x 方向上进行比例变化;s 。对形体在y 方向上 进行比例变化。变比因子s ,s 。的值可以式任意正数。这两个值小于1 时,形 体尺寸减小:大于l 时,形体被放大;当s 。,s 。的值都为1 时,形体保持不变。 如果s 。和s 。的数值相等,则产生均匀变比( u n i f o r ms c a l i n g ) ,即变比形成的形 体保持相对的比例关系。在实际应用中很多时候都是利用s 。,s 。的值不相等的 情况。这样就可以从几个基本的图形形状经过变比变换来进行修改,从而构造成 另一些图形。图2 - 2 中采用变比因子s 。= 2 , s y 一1 ,经变比将正方形变成了矩 形 如果利用式( 2 2 ) 重新绘制图形形体,图形中的每一条线的长度都按照s , s ,的值进行比例伸缩。此外,每一个顶点到坐标系统的原点的距离也进行比例伸 缩。如果放大的形体,则可能移动到远离原点的位置。 一 惫1 ,l童 北京化工大学两士学位论文 如果不是针对原点,而是针对另外一个固定参考点,可以控制一个被变比的形 体的位置,且这个点在变比变换后也保持不变。该点的坐标( x f , y f ) 可以选 图形的一个顶点,或者一个图形的中心,也可以是另一位置点,如图2 3 所示。多 边形相对于固定点进行变比,每个顶点都相对这个固定点按比例伸缩一个距离, 对于坐标为( x ,y ) 的顶点,变比后的坐标( x ,y ) 可以按下式计算 x o x f + ( x x f ) s x ,y 2 ”+ ( y y r ) s y ( 2 - 3 ) 对式( 2 3 ) 重新组合,可以得到相对于某一固定点的变比变换的方程为 x - x s x 十( 1 一s 。) x v ,y 弓s y + ( 1 一s y ) y l : ( 2 4 ) 式中,项( 1 - - s x ) x f 和( 1 - - s y ) y f 对形体中的所有点都是一个常数。与平移过 程一样,变比操作可能使物体的增长超过显示容许的坐标范围,变换后超限的线 可以被剪裁掉,也可以引起某种图形变换。这取决于所采用的系统,变比交换( 2 4 ) 可以应用于多边形的各个顶点。其他类型的形体也可以采用这组方程进行变比变 换,只需对沿着所定义的边界上的每一个点进行计算。这就是针对任意点的变换, 对于标准的图形,如圆与椭圆,交换的效率更高,只需修改所定义方程中的距离 参数即可,比如,对一个圆进行变比,只需要调整半径和确定新的圆心位置。 3 旋转变换( r o t a t i o n ) 形体的各点沿着圆形路径进行的变换称之为旋转。可以用旋转角来指定这种类 型的变换,它对多边形的每一个顶点都确定了一旋转量值。图2 - 4 展示了一个点从 位置( x ,y ) 到位置( x ,y ) 的位移,由相对于坐标原点的一个确定的旋转角e 来确定。在圈2 - 4 中,角掣是该点与水平轴的初始夹角。这个点的旋转变换的方程 就可以通过直角三角形的边与夹角的关系推出,可以写成 x = r e o s ( q d + = r c o s 妒c o s o - rs i n 妒s i n o ,= ,s i n ( q ) + 臼) = ,s i n c o s 0 + r c o s 妒s i n 口j 式中r 是该点与原点间的距离,由于 x = r c o s p ,y = ,s i n 口 所以,式( 2 5 ) 又可简化成 x = x c o s o y s i n 0 y l = y c o s 占+ x s i n o f 9 ( 2 5 ) ( 2 6 ) ( 2 7 ) 北京化工大学硕士学位论文 式中e 取正值表示按逆时针方向旋转;e 取负值表示按顺时针方向旋转。 圈2 - 4 相对原点旋转图2 - 5 相对任意点旋转 同样,形体也可以绕任意点旋转,只需对式( 2 7 ) 进行修改,将坐标( x r ,y r ) 选作旋转参考点( 或者称之为旋转中心一轴心( p i v o t ) ) ,相对于任意旋转点的旋 转过程如图2 5 所示,旋转坐标的变换方程可以从图中按三角变换关系得出 x1=xr,+妒(x-xr篇-_yr),sinoy yyy c o s 0 s i n 0 协s , 1 = ,+ ( 一 ,)+ ( x x ,)j 旋转变换的参考点可以设置在形体的边界内部或者外部的任意位置,如果参考点 位于形体边界内部,结果是该形体绕这个内部点而旋转;如果参考轴心在边界外 部,形体上所有的点都相对于这个轴心沿着一条圆形路径旋转显示。 2 1 2 二维图形几何变换的表示 利用基本变换的各种组合,可以用于多种应用环境。由一组形体定义建立的图 形需要对每种形体进行变化、旋转和平移,以便把它们放置并标定在适当的图 形位置。这一系列的变换可以逐次执行。首先,对定义形体的坐标进行变比,接 着将变比后的坐标进行旋转,最后再把旋转得到的坐标平移到所需位置。然而, 可以采用一种更为有效的计算最终坐标的方法。这就是采用矩阵方法直接从初始 坐标计算得到最终坐标,即首先把一个点用齐次坐标( h o m o g e n e o u s c o o r d i n a t e s ) 来表示。也就是说把一个二维的坐标位置点( x ,y ) 表示成一个三维的坐标点【2 1 , 即( x h ,y h ,w ) ,这里 x h 2 x w ,y h - y w ( 2 - 9 ) 式( 2 9 ) 中参数w 是一个非零值。它取决于所要表示的变换类型。对上面的二维 基本变换,设w = i ,这样,每一个二维坐标位置就都对应了一个齐次坐标形式i xy 1 】。 0 北京化工大学硕士学位论文 i x 叫班by 1 0 1 0 协1 0 ) 1 ,1 】= b】l ( 2 一 i te l 叫奶- 雕0s 。0 沼11001 , k ,1 】_ 扛y 1 】,l ( 2 - ) il jc o s p s i n 00l k y 1 】= by 1 1 一s i n 口c 。s p0 i ( 2 _ 1 2 ) i 001 i 2 2 图形编程基础 w i n d o w s 提供了丰富的内部函数,称为a p i ( a p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e ) , 又叫w i n d o w s 应用程序编程接口。图形设备接口g d i ( g r a p h i c sd e v i c ei n t e r f a c e ) 北京化工大学硕士学位论文 w i n d o w s 为实现其操作的设备无关性,还定义了设备环境( 又称设备上下文) 。 用户绘制显示器时需要通过设备环境d c 来间接实现。v i s u a lc + + 的m f c 封装了 许多与设备环境相关的类。通过这些类使得用户可以很容易地对d c 进行处理。这 些类不仅包括d c 自身,而且还有字体、画笔、画刷等绘图工具。 具体地讲,图形编程就是对w i n d o w s 自带的g d i 函数库和d c 进行操作,通 过调用这些函数库中的函数,来完成绘制工作。 1 图形设备接口g d i 例 g d i 是一个可执行程序。它接受w i n d o w s 应用程序的绘图请求( 表现为g d i 函数调用) ,并将它们传给相应的设备驱动程序,完成特定硬件的输出,如打印机 打印和显示器的显示。g d i 负责w i n d o w s 的所有图形输出。w i n d o w s 图形编程主 要是调用g d i 中的相关函数,并通过获得d c 的“状态”,以确定图形的颜色、尺 寸等属性。 g d i 表示的是一个抽象的接口,相当于一个关于图形显示的函数库。应用程序 可以使用它创建三种类型的图形输出:矢量输出、光栅图形输出和文本输出。通 过g d i 可以实现对图形的颜色、线条的粗细等属性的控制。我们通过调用这些g d i 函数操作硬件,从而实现了设备无关性。 绘图设备类是一些巳经定义的m f c 类。通过这些绘图设备类定义的对象能够 完成图形操作过程中的某类操作功能,可以将这些绘图设备类创建的对象选入到 绘图类对象中,完成有关的操作。在m f c 中,主要有以下几个绘图设备 类:c g d i o b j e c t ,c p e n ,c b r u s h ,c f o n t , c r g n ,c p a l e t t e 、c b i t m a p 下面将讨论这些绘图 设备类的使用。 c g d i o b j e c t 类是c o b j c e t 类的派生类,它为不同的w i n d o w s 图形设备界面( o d i ) 提供了基类。c g d i o b j e c t 类为它的派生类提供了大部分的操作,可利用这些派生类 创建一个特定的g d i 对象( 如画笔、画刷、字体、位图等) 。c g d i o b j e c t 类不能直接 用来创建一个对象。c b i t m a p 类、c b r u s h 类、c f o n t 类、c p e n 类、c r g n 类和c p a l e t t e 类部是c g d i o b j e c t 类的派生类( 如图2 6 ) 。 ( 1 ) c b i t m a p :位图是一种位矩阵。c b i t r n a p 类提供成员函数装载和操作位图。 每一个显示像素都对应于其中的一个或多个位。用户可以利用位图来表示 图像,也可以利用它来创建画刷。 ( 2 ) c b r u s h :c b r u s h 类画刷用来填充一个封闭图形对象( 如矩形、椭圆) 的内 1 2 北京化工大学硕士学位论文 部区域。默认的画刷将封闭图形的内部填充成全白色。 ( 3 ) c f o n t :字体c f o n t 类是一种具有某种风格和尺寸的所有字符的完整集合。 它常常被当作资源存在磁盘中,其中有一些还依赖于某种设备。 图2 - 6 绘图设备类的派生关系 ( 4 ) c p e n :画笔是一种用来画线及绘制有形边框的工具,用户可以指定它的颜 色及宽度,并且可以指定它画实线、点线或虚线。运用默认画笔画的是一 个像素宽的黑色实线。 ( 5 ) c r g n :用于设备环境( 通常是窗口) 内的区域操作。区域是由多边形、椭 圆或两者组合形成的一种范围,可以利用它来进行填充、裁剪以及鼠标击 中测试。 ( 6 ) c p a l e t t e :调色板是一种应用程序在不干扰其他应用程序的前提下,充分利 用输出设备的颜色描绘能力。 使用库存g d i 对象: 在w i n d o w s 中包含了一些库存的g d i 对象,这些库存对象是通过一些预定义 的宏来表示的。他们是w i n d o w s 系统的一部分,由w i n d o w s 系统维护,用于绘制 屏幕的常用对象,包括库存画笔、刷子、字体等,因此用户在使用以后无需删除 他们。m f c 库函数s l e c t s t o c k o b j e c t ( ) 可以把一个库存对象选进设备环境中,并 返回原先被选中的对象指针,同时使该对象被分离出来。该函数的声明及参数设 置如下: v i r t u a lc g d i o b j e c t + s e l e c t s t o c k o b j e c t ( i n tn l n d e x ) ; 如果函数调用成功,则返回一个被代替的c g d i o b j e c t 对象的指针,而实际指 向的是c p e n 、c b r u s h 、c f o n t 等类的实例。如果调用不成功,则返回值为n u l l 。 北京化工大学硕士学位论文 参数n i n d e x 用来指定想要得到的库存对象的种类。使用g d i 对象要注意两点: ( i )同其他m f c 对象一样,g d i 对象的创建也要分为两步:第一步定义一个 g d i 绘图对象类的实例;第二步调用该对象的创建方法真正创建对象。 ( 2 ) 使用该对象时,首先要调用c d c :s e l e c t o b j e c t o ,将它选入到设备上下文 中,同时保存原来的设置到个g d i 对象指针,如p o l d o b j e c t 中。在使用 完后,再用s e c l e c t o b j e c t ( p o l d o b j e c t ) 恢复原来的设置。但是,如果该设 备上下文是用户自己创建的,则不必恢复原来设置,因为框架会在该设备 上下文生存期结束是删除该设备上下文,同时也就删除了原来存放于该设 备上下文中的绘图对象设置。 2 、设备环境d c 4 】 设备环境d c ( d e v i c ec o n t e x t ) ,又称设备上下文也称设备描述表,实际上就 是一个关于如何绘制图形方法的集合。它不仅可以绘制各种图形,而且还可以确 定在应用窗口中绘制图形的方式,即确定绘图模式和映射模式。d c 的数据结构存 储了显示器( 或打印机) 的性能、属性之类的详细信息。这些数据信息决定程序 如何在显示器上进行显示。 在w i n d o w s 环境下,所有图形输出都是在d c 上进行的。图形和输出类封装了 设备环境和绘图工具,用来支持各种图形设备环境。用户在绘图之前,必须获取 绘图窗口区域的个设备环境d c ,接着才能进行g d i 函数的调用,以执行适合于 设备环境d c 的命令。获取d c 时,用户不必关心大多数的属性,为了创建自己应 用程序的特定显示,可以更改这些属性和对象。在w i n d o w s 编程术语中,让d c 提供新对象的操作被称为将绘图对象选取到d c 中。另外,应该注意的是w i n d o w s 的设备环境是g d i 的关键元素,它代表了不同的物理设备。可分为4 种类型:显 示器型、打印机型、内存型和信息型。每种类型的设备环境都有各自的特定用途, 详见表2 1 。 北京化工大学硕士学位论文 表2 - 1 设备环境类 设备环境用途 显示器型支持视频显示器上的绘图操作 打印机型支持打印机和绘图仪上的绘图类型 内存型支持位图上的绘图操作 i 信息型支持设备数据的访问 m f c 4 2 1 版中包含了一些设备环境类。其中,基类c d c 包含了绘图所需要的 所有成员函数( 包括部分虚函数) ,并且除了c m e t a f i l e 类之外,所有的派生类均 只是构造函数和析构函数的定义不同。在m f c 中,提出这些派生类的目的就是为 了在不同的显示设备上进行显示。 2 3 c d 0 类的派生类 c d c 的派生类各有特点,并可以完成不同的功能,如表2 - 2 。 表2 2c d c 的派生类 派生类名称说明 c c l i e n t d c 这是一个设备环境,提供对窗口客户区域的图形访问。在窗口中画 图时可使用此类d c ,但w m a i n t w i n d o w s 消息除外 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 m _ p a i n tw 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可以提供在整个窗口( 包括客户区和非客户区) 中画图的设备环境 c d c 类的调用: 显示器设备环境是最常用的设备环境,通过对函数c w n d ;:g e t d c ( ) 、c w n d : g e t d c e x ( ) 或c w n d :b e g i n p a i n t 的调用,应用程序就可以得到指定窗口的工 1 5 北京化工大学硕士学位论文 作区的显示器设备环境的句柄,可以在后续的g d i 函数中使用该显示器设备环境 在窗口工作区中画图。当完成绘图操作之后,应用程序应该调用c w n d :r e l e a s e d c ( ) 和c w n d :e n d p a i n t ( ) 函数来释放设备环境。 对于打印机设备环境,应用程序是通过调用c w n d :c r e a t e d c ( ) 函数来创 建的。当使用完毕后,应该调用c w n d :d e l e t e d c ( ) 函数来删除它。 内存设备环境是通过调用c w n d :c r e a t e c o m p a t i l e ( ) 函数来创建的。它将创 建一个与指定设备有兼容颜色格式的位图,其中内存设备环境也常被称为兼容设 备环境。 2 4w in d o w s 映射模式 在v c + + 中进行w i n d o w s 应用程序设计时,可以采用多种不同的映像方式即不 同的坐标系。本节对映像方式的分类、特点和设置方法进行介绍。 w i n d o w s 映像模式就是w i n d o w s 下的逻辑坐标方式。一个实际物理屏幕是由 像素组成的,如平常所说的6 4 0x4 8 0 ,1 0 2 4x7 6 8 指的就是物理屏幕的实际宽度和 高度的像索数目。为了方便各种情况下的程序开发,减轻程序开发的负担。w i n d o w s 提供了几种映像方式,每种映像方式提供不同的测量单位和坐标原点。 m m t e x t 方式( 默认方式) 基本上等价于d o s 文本方式,不同的是d o s 在字 符状态下操作,而m m t e x t 方式允许应用程序利用设备像素工作,这是一种与 设备坐标方式相同的映像方式。屏幕( 窗口) 的原点约定在左上角点,而x 和y 的 正方向分别为向右和向下。 m m _ l o m e t r i c ,m m _ h i m e t r i c ,m m l o n g l i s h ,m m _ h i e n g l i s h 四 种映像方式默认的坐标原点在窗口的左上角,其坐标的正方向为向右和向上( 笛卡 尔坐标) 。坐标位置用英寸( i n ) 或毫米( r a m ) 表示,这对一些应用程序( 例如一个绘 图程序) 来说是很方便的,可以直接利用原来的单位绘图,而不必进行坐标转换。 m m _ i s o t r o p i c 和m ma n s i s o t r o p i c 映像方式用的也是笛卡尔坐标。这 两种映像方式提供可变的逻辑单位和可变的原点。在m mi s o t r o p i c 映像方式 中,x 轴和y 轴方向坐标刻度是相同的。而m ma n s i s o t r o p i c 方式,允许对 x 袖和y 轴设x 不同的刻度。 m m t w i p s 方式是一种专门为排版设计的映像方式,t w i p s 是对“一个点 的1 2 0 ”这个词稍微删改后的缩写。“点”是排版的一个术语,也称之为“磅”( 简 1 6 北京化工大学硕士学位论文 写p t ) ,一点等于1 7 2 英寸。设立这个映像方式完全是为了设计排版用应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洗车保养转让协议合同书
- 第一个合作协议合同范本
- 网络监控安装合同协议书
- 私人建房承包安全协议书
- 矿山开采合作合同协议书
- 粗粮加工代理合同协议书
- 艺术培训班教师合同范本
- 洗涤厂员工劳务合同范本
- 渣土车承包维修合同范本
- 项目合同协议书样品模板
- 成都国资委采购管理办法
- 提高情商的培训课件
- JJG 597-2025交流电能表检定装置检定规程
- 2025年广州市中考物理试题(含答案)
- 2024年漳州市常山开发区招聘笔试真题
- (2025年)江西省景德镇市【辅警协警】笔试真题含答案
- 大型活动保安活动方案
- 礼仪培训ptt课件
- 2025年劳动关系协调员(初级)专业考试试卷
- 2025年国情与形势政策教育纲要
- 2025-2026年中国台球产业消费趋势报告
评论
0/150
提交评论