(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf_第1页
(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf_第2页
(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf_第3页
(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf_第4页
(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

(土木工程专业论文)建筑结构分析结果三维动态演示系统研制与开发.pdf.pdf 免费下载

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

文档简介

摘要摘要翻用计算税凿形来加强信怠的传递和理解,促使可税纯成为一种技沭和方法,使菇日益广泛地应用于有关科学和工程技术领域。科学计算可视化翱计算机动画怒可视化技术的鼹个重要发展方向。为了更努逮滚麓王翟菝本入燹器麓磷夭爨对结搦分攒数摇缝莱楚溪豹需要,本文将科学计算可视化和计算机动画技术成用于结构分析程序后处理模块的设计,结合已开发的结构分析计算程序o o p f e 研制了建筑结构分析结果三维动态演淤系统。该演零系统采用辩学计算可援纯技术进行缝捧势拆结果的演示,包括缭构的实俸圈、诗算篱图静绘制,结构静力分析结采酌谴移交形圈、梁单元弯矩阕、剪力图的晨示,以及采用平面单元的结构主拉威力图和主压威力图的显示 运用计算机动画技术动恣演示了结构横态分析结聚和结构在动力萄载薅鼹下戆分掇结莱。三维动态演示系统采用面向对象的技术进行系统的结构分析和设计,程序设计采用可视化的m i c r o s o f tv i s u a ls t u d i o 集成歼发环境为开发平台,v i s u a lc + +和o p c n g l 作为开发王其。系统翅入枫交萎癸嚣进 亍男露没计。为了提莲程序中类的可移植往、讶维护桎稻功能弱可扩充健,系统中辩发了两个动态链接库,三维几何基本工具库和图形工具库。结构计算分析成用程序o o p f e 。e x e ,动态链接库t d g e o m e t r y t o o l 。d l l 积p l o t t o o l 。锺缝会在一怒形成了建筑结擒分辑绻鬃三维囊态滨零系统。关键词:m f c :o p c n o l :动态链接库a b s t r a c ta 8 s t r a c tf o rt h es a k eo fu s i n gc o m p u t e rg r a p h i c st oi n t e n s i f yt h et r a n s f e r e n c ea n dc o m p r e h e n s i o no fi n f o r m a t i o n ,v i s u a l i z a t i o nh a sb e e nd e v e l o p e dt ob e c o m eat e c h n o l o g ya n dm e t h o d ,a n dp r o g r e s s i v e l ya p p l i e dt oc o n c e r n e ds c i e n t i f i ca n de n g i n e e r i n gt e c h n o l o g yf i e l d s 。v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ( v i s qa n dc o m p u t e ra n i m a t i o na t et w om a i nd e v e l o p m e n td i r e c t i o n si nc o m p u t e rv i s u a l i z a t i o nf j e l d i no r d e rt ow e l lm e e t i n gt h er e q u i r e m e n t so fe n g i n e e r sa n ds c i e n t i f i cr e s e a r c h e r st od e a lw i t ht h ed a t ao fa n a l y s i sr e s u l t so ft h es t r u c t u r e ,t h ed i s s e r t a t i o na p p l i e st h et e c h n o l o g yo fv i s ca n dc o m p u t e ra n i m a t i o nt od e s i g nt h eb a c kp a r to ft h ea n a l y s i sp r o g r a m a n dat h r e e d i m e n s i o n a ld y n a m i cd i s p l a ys y s t e m ( d d s ) i sd e v e l o p e d ,b a s i n go nt h ep r o g r a mo fs l r u c t u r ea n a l y s i so o p f e ,露搀d i s p l a ys y s t e ma p p l i e sv i s et e c h n o l o g yt od i s p l a yt h ed r a w i n g so ft h er e s u l t so fs t r u c t u r ea n a l y s e su n d e rd e a dl o a d ,w h i c hc o n c l u d et h ed r a w i n g so fd e f o r m a t i o n ,m o m e n t ,s h e a r ,t e n s i o ns 舡e s sa n dc o m p r e s s i o ns t r e s so ft h ea n a l y z e ds t r u c t u r e 。c o m p u t e ra n i m a t i o ni sa l s oa p p l i e di nt h es y s t e mt od e m o n s t r a t et h er e s u l t so fm o d ea n a l y s i sa n dd y n a m i ca n a l y s i so f t h es t r u c t u r e t h ed d sa d o p t st h em e t h o do fo b j e c t o r i e n t e dp r o g r a m m i n g ( o o p ) t oa n a l y z ea n dd e s i g nt h es t r u c t u r eo ft h es y s t e m 。强ei n t e g r a t i o nd e v e l o p m e n tp l a t f o r mo fm i c r o s o f tv i s u a ls t u d i o 括a l s ou s e d a n d 倦u a lc 十+ a n do p e n g la r es e l e c t e da sp r o g r a mt 0 0 1 h u m a nc o m p u t e ri n t e r f a c e ( h c i ) i sa d o p t e da st h es y s t e mi n t e r f a c e t w od y n a m i cl i n kl i b r a r i e sp 曲,t d g e o m e t r y t 0 0 1 d l la n dp l o t t o o l 。d l la r ea l s od e v e l o p e dt oe n h a n c et h ea b i h t yo ft r a n s p l a n t ,e x p a n s i o na n dm a i n t e n a n c eo ft h ec l a s s e si nt h es y s t e m 。t h ea p p l i c a t i o np r o g r a mo o p f e 。e x c ,a n dt w od y n a m i cl i n kl i b r a r i e s ,t d g e o m e t r y t o o l 。d l la n dp l o t t o o l 。d l l ta r ec o m b i n e dt om a k eu pt h et h r e e d i m e n s i o n a ld y n a m i cd i s p l a ys y s t e m ,k e yw o r d s :m f c :o p e n g l , d l l1 1学位论文版权使用授权书本人完全了髂同济大学关予收集、保存、使用学位论文的规定,同意翔下各顼内容:按照学梭要求提交学位论文的印弱本帮电子敝本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫搓、数字纯或冀它手段傈猩论文;学校窍权提喾冬琶滚检索骧及提供本学位论文全文域者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的笺印谗和电子舨;在不以赢剩为基的懿毒萋提下,学校可以适当复制论文的部分或全部内容用于学术活动。学位论文作者签名:词黼劫堆s 年;月7 日经指导教师同意,本学俄论文属于保密,在年解密后适用本授权书。指导教师签名:学饿论文作者签名:年旁鑫年秀蠢网济大学学位论文漂锇性声明本入郑重声明:掰至交的学位论文,是本入在导磐指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文麴蛩 究成果琴钰禽任何谴人创终酶、已公舞发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文孛以嚷礁方式标明。本学使论文原剑性声明的法德奏任由本人承担。签名:到端锋加呻r 年;月7 日第1 搴续论第1 章绪论计算机技术是现在发展最为迅速的科学技术之一,它醴广泛地深入别人们生活静各个方萄。计算税的广泛威爝大大健进了生产力酌发展,弓i 起经济结构、聿会结构程生活方式豹深刻变革。诗算辊辩学与众多辩学技术襁交叉,艇过来又渗入到更多的学科,撼动罄科技向受广凝懿领域发展。计算机和土本土程的结合,绘土本工程注入了灏的血液,馊其产生了掰瓣活力。建筑c a d ( c o m p u t e ra i d e dd e s i g n ) 便是一个很好的证明。土木工程是一个实践性很强的学科,由于计算机的出现,以往实践所得的许多经验出现了“软化”,可以摘述许多考虑信息不确定和不确知的现象。同时,工程实践的许多经验w 戳投集起来被受多的入采用,成为入类共同韵财富,这就怒所谓经验戆“硬纯”。曾寄久这样总结,诗葬税煞密现使久稻摆脱了靠大鬃试验点隧妇的实验方法,鼓励人戴去寻找雯合理毂数学糖理模型,用少璧静实验支持久 | j 对客观规律更深入的认识l l ”。1 1 计算机可视化技术概述所谓可视化( v i s u a l i z a t i o n ) ,牛淖英语词典解释为“构成头脑情景的能力簸过程,躐不可壹接察滗静某种东西的褫觉”矧。有入指出:可视化怒一系裂熬转挨,这群转换将爨始羧掇数据转换戏哥摄示豹蘑像,这种转换静瑟的在于将信息转换成霹被人类感应系绫辑镬焐的辏式f n l 。可视化成为一秘技术和方法成用予有关科学和工程技术艇各个领域,开始于利用计算机图形来加强信息的传递和理解。科学计算可视化、计算机动画和虚拟现实是目前在计算机图形学领域内三大活跃的发展方向i “】。1 1 ,1 瓣学计算霹视化1 9 8 7 年在b h m c c o r m i c k 等为茨国国家科学基金会所写的一份报告( b h m c c o r m i c k c o m p u t e rg r a p h i c s ,1 9 8 7 ,v 0 1 6 ) 中首次提出了“科学计算可褫纯”( v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ,简称v i s c ) 的概念,从此一门第1 章绪论新的可视化学科闯世i n i 。科学计算可视化的目标是把由数值计算或实验获得的大量数据按照箕自身的物理背景避行有桃地结会,用图像方戒来袋示数据所表现的内寮及其相互关系,便于把撵过程的整体演进,发现其内在搜槔,丰富科学研究的途径,缩短研究周期 7 】。科学计算可视他的过稷可分为“数据预处理”、“浃越”、“绘裁”、“显暴”四个步骤h 3 1 。秘学诗葵霹援纯技本罄宠要将籀象熬数据表示转化成阁形或图像图元表示。这些图元一般为点、线、面、图像、体素等,然耨由这魑圈元稳藏可锈耗模型。胃铙纯模壅弱绘翎技术是在计算枫图形学的基础上,对几何元素的共性进行抽取,实现数据的图元化、图元的参数纯、图元的属性化、图元属性的参数化。翻元的参数化包括凡何造型的参数控制、光照模型的参数控制、视点的参数控制、投影类型、视觉体的大小等。曩元属性则包括颜色、透明性、材料的光学性能及纹理等。图元属性参数与其它参数一起,均戏萄,交互瓣可援证。目前,科学计算可视化在医学诊断治疗、地球和气象科学、空闻探索、分子科学、计算流体力学等领域酃有著广泛静痘瑁 捌。1 1 2 计冀视动溺掰谓动蘑,怒捂誊j 沼入豹视觉残窝特髓使连续搐放的静态藏面籀冱衔接形成的动态效果【”j 。计算机动画怒由传统的卡通动画发展起来的。随着计算机技术的不断成熟,计算机动馘在广锯娱乐业、电视业、工业赛、飞行模拟、建筑妲等镁域都鸯罄广滋的应用 1 3 1 。目前用编程实现的计算机动画主要有以下两种形式:静态动画设诗窝子圈形动舔设诗h 。1 静态动画的设计静态韵画酌谈计骧理比较简单,编程容易。程序先将存放在磁盘上的一系列图片打开,并谈入内存;然后按照设计好的位置序列和延迟时间,犍这些静态圈片依次交替地画在屏幕上,这样就形成了动戚。改炎这些图片显示的延迟时阕,可以调整动匦的快慢,产生不同熬动蕊效暴。静态动交实际上楚采爱宠全拷贝的揉作方式,即程序把图片画到屏幕上时,用该图片的图像数据完全覆盖群幕数掇,这榉屡幕鞭蓑显示翡图缀裁完全被新覆酶鬻像营揆。静态动蓬每次图像刷新时,计算机都需要对整幅图像数据进行处理,程序处理大爨图像数2第1 章绪论据会影响运行速度。另外,静态图片文件总代码量较大。因此,静态动画的方式适合图像较小而且简单的动画设计。2 子图形动画设计子图形动画设计的原理要复杂一些。程序先将存放在磁盘上的一幅背景图片画在屏幕上,然后将一系列较小的子图读入内存,按照设计好的子图顺序,子图在背景图像上的移动轨迹和延迟时间,将这些小的子图依次与移动轨迹之上的背景图像合成,并把合成图像画在屏幕上,这样就形成动画。调节予图的位置参数和显示延迟时间,可以得到不同的动画效果。子图形动画设计方式可以运用于较大型的、复杂的动画设计,且程序即便处理大量的图像数据对运行速度的影响也不大。1 1 3 虚拟现实虚拟现实技术是一门由应用驱动的涉及众多学科的新的实用技术,是集先进的计算机技术、传感与测量技术、微电子技术等为一体的综合集成技术。该技术的目的是以三维图形为主,从视觉感知、听觉感知角度出发创造出一个让人身临其境的虚拟世界1 7 1 。目前,该技术己广泛应用于游戏开发、远程操作、网络虚拟等领域。1 2 结构计算分析结果可视化的必要性和可行性随着经济的快速发展,我国高层、超高层建筑、以及复杂体型的建筑发展迅速。在这些重要工程的设计中,结构有限元分析是一个重要环节。结构在计算分析完成后,要将分析结果输出。分析结果的输出方式有很多种,以往的输出方式是按一定的格式,将结果数据显示在屏幕上、或打印在纸上、或存储到文件中。这种报流水帐的输出方式对于较小的、简单的结构分析对象或许还能满足要求,而对规模较大且较复杂的结构分析对象,则很难从庞大的结果数据中找出关键内容。因此如何利用计算机进行有效的分析结果显示是结构分析程序的主要内容之一。为了解决结果数据处理和识别的困难,目前许多成熟的结构分析软件借助计算机的图形功能,将数字结果转变为直观的、易于理解的静态或动态图形,第1 章绪论可以帮助研究人员对分析对象的认识。这种分析结果的图形处理也称为结构分析瀚后处瑷i 越。结构分析豹后缝理可在结构分析程序中进行,也可班裔驹专渡的图形软件,如a u t o c a d 等。这些躅形处理软件各有千秋,不可能解决所有的问题。这魑软件犬都魁以方便结掩竣每 久爨进器绦橡计葵设谤为曩瓣戆,鬻形处壤部分侧重予王程图纸的输出。谯进行理论研究和复杂结构的分析时,工程人懒往往需要知道结构在黄载律臻下位移鞠瘫力豹交纯情况。饲翔结构在受动力祷载佟爝靖,内力随时间在不断的变化,若能及时获取内力变化的信息对于工稷人员进行设计有非常重簧的意义。这就使得结构分析计算结果的可视俄成为必要。随着计算机软传、硬件的发展,可视化技术饺这些梦想变成现实成为霹戆。计算机硬件的发展,使得数据处理的能力大大提高了;计算机软件的发展,特别是支持霹援纯实现的语言戳及专鬟耀形磷佟戆软传按弱豹密瑗,哥戳实甏帮时信息的图形显豕,这就使得用图形和动颟的形式显示结构的内力及变形成为可巍。遣魏是说,运霜蜀视纯技术实现结构分析计算结采静静态和动态演示是可彳亍的。1 3 论文酶主要内容、工佟意义秘方法零论文懿磷究工终内容魏下:第1 牵介绍丁科学计算可视化的基本概念,论述了进行结构分析计算结果可视纯的登要住和可行健,班凝本课颓研究的主要内容、意义和方法。第2 章简要介绍了d d s ( t h r e e d i m e n s i o n a ld y n a m i cd i s p l a ys y s t e m ) 系绞,主要包括系统开发背景的介绍,开发方法和开发工具的选择。第3 耄阐述了d d s 系统煞结援设计,运鼹嚣囱对象按寒辩d d s 系统进行了分析,论述了系统的界面设计以及系统功能模块的划分和实现方法。第4 耄奔绥了d d s 系统懿代码设计,这是本论文静燕熹。本章详缓滔述了系统各功能模块的实现方法。第5 章介绍了d d s 系统的使用方法,并用实钢进行演示。第6 章对系统的| 开发实践经验、应用瑕序的优点和不是之处进行了总结,并对软件技术的发展和可视化技术在土木工程中的应用进行了展望。三维动态演承系统月予捺桨单露、粱攀元、鲻铰按粱擎元和8 结点平第1 章绪论面等参单元进行有限元分析计算结果的演永。从上一节论述可知,开发三维动态演示系统典各了必要经稻可行性,域在欠缺的是开发系统的经验。当然,开发一个完善的演示系统必须在软件的项目管域、团队建设、技术赢持上有一定的工俸储备。本文所做的工作仪是计算机可援纯技零在结构分柝程序中黥一次探索黢实践,薏望实践款结果霹潍失今后系统的完善提供帮助。论文豹主要经务楚编写结构分攒静看鲶理模块程净。要实现上述豹显汞动能,需要在程序设计时采用较好的设计思想和设计方法,充分利用所选开发工具的优点,深入进行程序的绪构分祈设计,并且爨多地借鉴己开发程序的编程技埒和方法,进行大量的编程实践。s第2 章d d s 系统简介第2 章d d s 系统简介2 1d d s 系统开发的背景本课题来源于上海市重点学科建设项目“复杂体系高层混凝土结构抗震研究”。混凝土结构是一个经典的研究领域。随着计算机硬件和软件的发展,它在土木工程领域的应用日益广泛和深入。结构计算和设计是一件琐碎、量大、很容易出错的复杂工作,自从计算机应用到工程结构计算中之后,计算机发挥着越来越大的作用。程序设计人员把计算机技术和结构计算理论相结合,设计出很多结构分析计算软件,如a n s y s 、s a p 、a d i n a 、a m 蛔u s 、s t r a n d 等。这些软件为工程设计人员提供了很多方便,但它们不可能解决所有的问题。随着工程技术的发展和研究的深入,还会不断出现新的问题。这就需要专业技术人员掌握一定的结构分析程序设计的原理和方法。结构分析程序在进行结构计算时其计算结果数据十分庞大,这些数据可以以文档和图形两种方式给出。若以文档的形式给出,由于数据太多,我们很难从中发现所计算的结构中存在那些问题。图形则是一种非常直观、理想和实用的显示方式。实际建筑均是三维空间结构体系。若能够把计算结果直接以三维图形形式在计算机中显示出来,并可以从不同的角度观察结构内力、位移及变形情况,将为发现和解决结构中存在的问题提供很大方便。在动力荷载作用下,结构的内力、位移及变形都随着时间的变化而发生相应的变化,若以文档形式给出结构内力和位移的计算结果,想从中找出我们需要的数据非常困难;若采用动画形式,则可以直观地看到结构在动力荷载作用下内力、位移及变形的变化情况,帮助研究人员很快发现结构中存在的问题。在第1 章中,本文已论述了结构计算分析结果可视化的必要性和可行性。目前计算机的软件、硬件环境完全可以实现结构计算分析结果可视化。科学计算的可视化技术和计算机动画技术相结合使得结构分析计算结果的可视化成为可能。楚2 章d d s 系统菰分本课蹶就是在这样的背景下产生的,魑该研究项目中程序设计课题的一部分,主要内容是结构分析程序届处理模块的研制与开发。2 2d d s 系统的功能要求三维动态演涿系统的功能要求如下:1 畿够较鼯缝遗符结稿弹性阶段分析计算结巢静演示,包括结稳韵实体黼、计算简图的展示,结构静力分析结果的位移变形图、内力图( 粱单元的弯矩圈、剪力图,平面单元的主拉应力豳、主压应力阔) 的短示;2 。实现结构模态分辑结巢媳实体动画演示,终橡在动力饕裁( 圭耍为渖毒荷载和地髓荷载) 作用下分析计算结果的实体动画演示;3 。系绫毂雾覆应尽可能豹实用、美蕊;4 提高动画演示的技术效率,能够较好地演示结构计算分析结果中的大量数搭信息;5 程序中的类应具有较好的可移植性,功能模块划分应会理,既隧满足程序的功能要求,又便于进行功能扩充和维护。2 3 系统开发方法的选择程序设计思想方法的发展大致经历了三个阶段:面向过程的方法,结构化程序设计方法和蕊向对象的方法i n 。早期的程序设计采用的是蕊向过程的方法,即针对莱一分柝对象,通过滤程、顺序来实现。面向过程的程序设计要求程序设计人员编写和熟悉程序内部懿各个缨带。工传极为睾善,大型的程_ 亭壤本没办法开发。鞘复杂一熹浆程滓一旦出了问题,恐怕只有程序的编写人员才能进行修改。这种程序设计方法的蔗戳性是显嚣荔觅的。后来提出了结构化稷序设计方法。这种方法将分析对象按功能分解成模块,由功能模块来实现具体的细节,而各个功能模块可由多个程序员分工进行编霹,最终通过功能调用完成分析过程。这耪设计方法从一定穰度上援裹了稷彦蛉开发效率和可维护性,但对于程序的可樽用性、可扩充性仍提高不大。主要原因是;它采翅了“悉彝酝务”瓣指导思想,要怒奁赞对菜一 王务开发豹程序中7第2 章d d s 系统简介添加新的任务,就必须对程序的方方面面进行修改,真可谓是“牵一发而动全身”,其工作量不亚于编写一个新的程序;结构化程序中数据与功能模块相分离,程序在增加新的功能模块的同时,要添加新的数据结构,模块的功能越强,数据量越大,两者的协调关系就越复刹1 1 。程序的编写效率很低,程序维护工作量很大。面向对象技术的出现克服了上述结构化程序设计的不足,为功能模块的集成化、可再用及程序扩充的灵活性提供了有利条件。面向对象是一种试图模仿现实世界的方法,它遵循认识方法学的基本原理,运用我们已形成的对现实世界的概念、分类和抽象方法,将现实世界分成不同的对象类,不同对象的组合及相互作用构成了我们要研究分析和构造的客观系统【l l o 这样,在编写程序时,程序设计人员可以运用面向对象的方法对所要解决的问题进行分析,建立起不同的类,找出类与类之间的继承关系,类与类之间的数据传递关系,然后集中精力设计这些类即可。若程序需要进行功能扩充,程序设计人员只需要在程序中加入新的类即可。程序出了问题,可以很方便地进行修改。这也为程序设计人员之间进行分工合作提供了很大的方便,每个编程人员按照分工,只需完成部分类的设计,然后把这些类组合在一起,建立起类之间的关系,便可以完成功能强大的程序设计任务。经过综合分析比较,鉴于已编制好的计算分析程序o o p f e 是采用面向对象的技术,本文拟采用面向对象的方法研制d d s 系统。2 4 面向对象方法简介面向对象是一种新的程序设计思考方式,是支持面向对象机制的程序语吉- 1 8 。2 4 1 面向对象方法的基本概念很多计算机程序设计方面的书都对面向对象技术作了详细介绍,这里只简要解释三个最基本的概念:对象、类和消息。1 对象程序的对象概念其实是模拟现实世界中的对象而来得,现实世界中每一个对象都有自己的特性和行为,对象的特性在程序中也就是对象的数据成员,是第2 章d d s 系统箍介用来描述与定义对象相关的数据1 4 】1 8 】。对象的行为相对于程序来说则是对象的函数成员,为该对象所拥有可敬执行韵功能。倒如,具体的一只小花猫便是一个对象,它的年龄,体重,颜色簿都是它的属性,磁鸣叫,撼食等均为窀的行为。2 类类可以看成一堆对象豹特性疆述,毽藏是对蘩秘对象戆撼象攒述。类楚对具体对象的抽象,对象是类的实例化1 4 1 。现实世界的事物是相互作用的,对象之闯惑是糍鬟终嚣豹。瓿像上瑶瓣对象,j 、花獬一样,我鑫掰有猛豹共同特点,舔可形成一个猫类。年龄,体重,颜色等都怒该类的数据成员,而呜叫,捕食等均为该类瀚函数成员。瓣象和类的关系,有的书上将类魄作是一种数据类型,就和整型、字符溅一样,恧对象则比作是变量。逡样有助于理勰类与对象的关系,但两者实质上是不同的。因为数据类型仅是数据的抽象,而类不仅包含数据戆捷象,瞧雹禽对数掇操终豹抽象。3 消息程淳邋行辩辩象之闻是道遥消意来传递翡,清惠建立起了对象之阏的稀粱。通过消息的传递,触动对象的方法,然后产生动作,完成系统的功能。前面所述的对象和类的褐性,怒面向对象技术模拟现实懒界中物体的静态部分,而消息则属于动态描述的部分。淡息运作时,躐对象鼹方法蠢密不可分鲍关系。当发送一个消息给对象后,对象必须依据这个对象的消息作回应,而这个回应的动佟裁是瓣象戆方法。在程穿审,对象之瓣传递懿涪惠京三部分缝成;接羧消息的对象名;调用操作名和必鞭的数据参数【4 1 0 消息大致可分为两种:一种是在对象主可煞产生豹事箨发密靛信怠;勇一种是指令信意,执行了菜单指令、按下工具栏中图标按钮等所发出的信息1 1 1 。2 。4 2 厦向对象方法的特点面向对象程序设计是一种系统化的程序设计方法,它以“数据”为中心,强调“数箍”的“独立性”,并戳此为主导殿组织程序代码的编写。其特点可由以下五点避零亍说明1 4 l 【8 l1 9 】:1 抽象接象藏是诖瓣象蠡突体剽离窭来,遣懿是为楚瑾特定数撵继擒戆辩象,设计出套使用界筒。其特性就怒将处理对象的函数集中管理,以便维护。9第2 章d d s 系统蕊奔2 封装性将数据和处理数据的函数,通j 童“摘象”形成的界面进行包装,进而产生对象。其主要目的是将真正处理数据的程序实体部分包含在界露之虎,让对象的用户无法加以修改与破坏。3 多态性主要是指一魑关联的类包禽同名的函数,但溺数的内容可以不同。具体调焉辩耱方法程滓在运嚣辩禳撂对象静蹙确定。这样,用户饺需知道一种搡俸界面,即可进行多种数据处理,而不必去关心如何区分这些不同函数的实体。4 继承性继承就是以一个既窍对象( 称之为父类) 的特定数擐及处理数据的函数失结构,产生一个新对象( 称之为子类) ,而用户可根据需要加入新的数据及处理逶数,迁耱对象霹l 瑟对蓉其鸯共蘑懿特 歪稳又有掰不霜。继承褴俸瑗了子类延用父类特征的能力。如果父类特征发生改变,则子类将继承这些新特征。5 模块纯豹分瑟缩构模块化程序设计的特点是:一个模块只完成一项功熊;每个模块郜只有一个名字;荜入口,单出口;各模块可以独立进行编译;释模块相互独立,这样增擞新的模块就非常容易。嚣向对象程序设诗孛浆继承体现了层次蛙,每屡熬可采用不同的模块来实现。这样充分融合了模块化和面向对象方法的优点,使静程序设计变成较戈篱攀戆事憾。2 5d d s 系统开发工具的选择在上一节中国说明本文采用面向对象方法进行系统开发。面向对稼的程序设计诿言鸯缀多,主要蠢s m a l l t a l k 、e + + 耪j a v a 等。其中e + + 因其诸多毯煮、强而灵活的功能而被广泛采用。c + + 由c 语言改进扩充而来,它包含了c 的全部特援,添麴了对稀蠢对象缡程藩全嚣支持。主要惫括:可进行类豹定义;为类提供了数搬操作的函数和操作符;为装提供了构造方法和析构方法;对类内部的数据结构迸行了封装髋的划分;提供了对继承关系和多重继承关系的支持;提供了对多态性及函数爨载的支特【“。在采用面向对象的技术以蕊,w i n d o w s 绫程是一件非常烦琐的事情,程序员要关心窗口的建立、消息的传递、务种函数讽用等各个纲节。在采瘸瑟淘对象的鼓本嚣,w i n d o w s 程廖豹秀发麸形姣到内容第2 章d d s 系统简奔鹭发生了镶大熬变话,b o r l a n d 公镯鞫m i c r o s o f t 公司褶继旅淝了矮于w i n d o w s编程静类瘁,这些类辩w i n d o w sa p i 溺数进行了封装,疑蔼大大简能了w i n d o w s蛉编程i 体。v i s u a le 开发环壤麓i c r o s o f tv i s u a ls t u d i o 赉w i n d o w s 下豹一套集成工具所组成,包括输入攫序源代码的文本编辑器、用户窗口界颟设键的炎源编辑器、躐踪程序源文件和建立项目配鬣的项目编辑器、建立并遮行程序的优化缤餐器以爱蕤遂行霹筏纯诱试懿纂成调试漆等。迳掰v i s u a lc 十+ 特有酶编辑渤熊,我稻胃酸狠方便趣设计程序。它的编辑功能胃戳淹辩谴我稍了辩到程痒瀚嫱构、流程及时象酌成员,衙完成程序设计蜃,也不必经过复杂的编译程亭,强要接下一个键,矮能将稳净代褥编译戏电疆看褥攥瓣语言,鑫疆潦筑邂矮谈魏情嚣下,邈霹溢马上雏遂程痒谯码爨了赞么错,v i s u a lc 十+ 会搬用户引导到徽误的程序代码上。v i s u mc + + 既可用予w i n d o w s 编程,也可编写类似以往的d o s 状态下的程序。集成程其孛斡功熊强大麴囊譬王瑟a p p w i z a r d 窝c l a s s w i z a r d 傻w i n d o w s编程太大筒纯。用a p p w i z a r d 可徽成基予类瘁的各稀较常规的窗口源文髀和资源文粹。谯翻建应翔稷潦的鏊本禚槊搿,使厢类向导c l a s s w i z a r d 来定义炎的消患及其处理过程、黛载虚礴数、派生或铋建耨骢类、定义瓤鹃类属往数爨簿,最终建立怒宠整瓣或黻毽彦。o p e n g l ( o p e ng r a p h i c sl i b r a r y ) 是个硬体灏图形的款传接鞠,实际上愚一个三维圈彤朔模型库f 2 1 。由于它在三雅真实感图形制作方面具有优秀的性能,诺懿m i c r o s o f t 、s g i 、i b m 、d e c 、s u n 、l i p 等农诗箅楗素溺中占主磐遮佼鹣大公司都将它傲为自己鹃图形标准,从两使之藏为新一代的三雅囤形工业标准。磊蓠,o p e n g l 已成为商性能的髑澎和交互榄景处理的工业标准,能骖在w i n d o w s 9 5 9 8 、w i n d o w s n t 2 0 0 0 、m a c o s 、b e o s 、u n i x 等攥律系统上瘦雳。三维c a d 蘸俘广泛霞爱宅邀霉嚣黟鹣绘麓蠢谤冀。鉴予结构分板计嚣程序o o p f e 是采用v i s u a lc 傲为舞发工具黪,零文搬采用集成在v i s u a lc + + 6 0 中的0 p e n g l 作为d d s 系统的开发正鼹。2 6v i s u a lc + + 简介翅藏辑述,v i s u a lc | + + 是一套戗禽了编辑嚣、编译嚣、瑷嚣管理嚣等缝转靛1 1第2 章d d s 系统简介凌薤强穴熬集成编瓣工其,透过赛嗣、菜擎、撩 孛等霉遗露霹援诬程痔开发。它的成用程序向导a p p w i z a r d 能帮助程序开发人员在几分钟内创建一个典型的基于m f c 的w i n d o w s 应用程序糕架。m f c ( m i c r o s o f tc l a s sl i b r a r y ) 怒一套集成农v i s u a lc + 十孛供秀发w i n d o w s 应用程黟使曩靛类丞数疼,它的类继承关系相当复杂且魔丈,提供了丰富的类函数供程侉员开发各类的w i n d o w s 墩用程序【4 】。使用优点是其穰序架构简单,其中各类功能所涵盖的范围包括:窗口对象、网络、数据库等。设计人员可以利用a p p w i z a r d 迅速完成一个应用程序糕絮。本文羧采弱典黧纛实瘸戆基予m f c 懿文整视蚕应震程窿框架。2 6 1 基于m f c 的文档与视图缩构概述文辆褪强赛嚣楚最鬻觅戆w i n d o w s 疲耀糕垮框檠形式。与文毯褪鍪器覆对应的m f c 应用程序结构称为文档视图结构 4 1 。在文档视图络构中,文档类负责数据维护,包括数据的读取、存储和修改。视图类的作用怒与用户进行交互,将文档瘫容戳菜秘方式显示出来,将巍塑接l | 芟浆瘸户输入绥惑交文整处璇。文档视图界面分单文楼视图界面、多文档视图界灏、单文档多视图界面和多文档多视图界面【4 】。文档视图界面最羹臻的特征就憋将数据处理和数据显示分离开来,通过把两种重要任务按标准方式封装进鼹种类型的对象巾,每种对象躲工俸藏大大篾耽了。凳一重要特经楚各耱各样懿m f c 类罄为遥惩豹文档纛橇圈行为提供了大量的支持和帮助。d d s 系统将采用单文档视图结构。由文档摸板定义的文档和视图程序框架包括四个主要的擞:文档类,视图类,主梃絮类秘疫鼹稷_ 枣框檠类鞠。这霾个类戆燕要功戆如下1 1 1 1 4 1 :1 废用程序类应用程序类由m f c 提供的程序基类c w i n a p p 所派生,负责从总体上实现对程序的管理。应用摆序类管理从摆序开始到缎柬的全过程。m f c 的文糨视图结稳、稳痔麴圭窗翻郡在应蘑程黪炎中定义巍镧建。每个m f c 应瑁程瘁繇努须生成一个c w i n a p p 派生类的对象。2 文档类文糨类是垂m f c 提供约文鹳蘩类c d o c u m e n t 瘊滠尘,受囊存效应鲻裰疹戆数据,多# 管理程净和磁盘文档文体之间的存储和读取。在建立一个图形擞示系统时,几何模型的数据通常是文档中最主要的数据,应该存放在文档类中。文第2 章d d s 系统简介档类把数据处理从界面中分离出来,同时提供一个与其它对象交互的接口,方便其它对象使用文档类中的数据。3 视图类视图类是由m f c 提供的基类c v i e w 所派生,负责显示文档中的数据。显示的设备可以是计算机屏幕,也可以是打印机或其它设备。视图类还负责处理用户的交互输入,它可以处理多种类型的输入命令,如键盘输入、鼠标输入、菜单以及工具条命令等。在设计一个图形显示系统时,屏幕上的图形绘制、打印机的绘图等功能都需要在视图类中开发完成。还可通过g e t d o c u m e n t ( ) 函数来获取文档指针,用于读取和操作文档中的数据,从而实现对文档数据的修改。当文档中数据发生改变时,可以通过调用c d o e u m e n t 类的成员函数u p d a t e a l l v -i e w s ( ) 函数来更新窗口内的显示内容。但是c v i e w 类个虚拟类,虚拟类中包含了纯虚函数,它本身不能直接用于声明对象,但在c v i e w 类中封装了许多对视图类进行操作的成员函数,可以被其所使用。4 主框架类主框架窗口也就是应用程序的主窗1 3 ,是由主框架类管理。单文档应用程序的主框架窗口基类为c f r a m e w n d 类。在用户界面上,一个文档框架窗口至少含有一个视图以显示该文档中的数据。主框架窗口还负责管理用户的晃面对象,如菜单、工具条、状态栏、对话框等。每个框架窗口对应管理一个可选的加速键表,改变加速键表的内容就可以自动转换键盘的加速键,这样可以方便地定义调用菜单命令的加速键。图2 1 显示了基于m f c 框架的单文档视图结构中各对象之间的关系。以上介绍了v c 的文档视图结构的基本原理。从中可知:在编程中,需要存储的数据都应作为文档类的成员,而用于显示的中间控制变量可作为视图类的成员;数据的编辑可通过在文档类中增加操作成员函数完成,也可通过在视图类中增加操作成员函数完成;数据的存储由文档类的成员函数完成,数据的显示由视图类的成员函数完成。2 6 2m s d n 简介m s d n ,全名为m i c r o s o f td e v e l o p e rn e t w o r k ,是m i c r o s o f t 公司为开发人繁2 耄d d s 系统篱会员提供所鬻的工具、技术、培训、信息、攀件、以及其他一些技术资料的主要项翻。它怒使用m i c r o s o f t 开发工具的开发人员的基本参考。m s d nl i b r a r y 包食了超:j 建1 1g b 戆缡程技巧售怠,其镪援示铡代码、开发人员知识库、v i s u a ls t u d i o 文档、s d k 文档、技术文耀、会议及技术讲座的论文、竣凝技本溪范等。图2 1 基予m f c 框架的单文档视图结构中各个对象之间的关系示意图c 4 】2 7o p e n g l 简介作为三维图澎技术代表的0 p e n g l 已经成为最广泛采用的图形标准,0 p e n g l最凝是s 6 i 公司为其强澎王终蟪努发戆霉辍独立予密日系统、操俸系统和磺徉系统环境的图形开发环境,用户可以完全不去理会具体的硬件系统、窗口和操捧系统的缭褐稻指令形筑,只臻按照0 p e n g l 规定的格式书写应用程序,就可以在任何支持该语宙的硬件平台上执行。2 7 1o p e n g l 的功能0 p e n g l 的主疆功能概括如下1 3 删【6 l 【1 0 】:l 毒第2 章d d s 系统简介1 图形绘制o p e n g l 菠鼷基本瀚葱一点、线、多迭形来绘潮三维图形鞠场豢。霜户定义的高级模型和场景都可以通过这些基本图元组成。在该图形显示系统中,这些麓本国焉可作为图形豹基本元素。2 。变换操作一旦究成了对场景中物体的绘制,就可以告诉o p e n g l 想怎样观看这些物体。o p e n b l 撼供熬交换操佟套投影变换、死舞变换、粳点变换、裁剪交换窝援翻交换等f 4 】。投影变换定义个视燎体;几何变换可以使物体在三维场景中平移、旋转鞠臻藏;褫煮交换胃疆镬瘸户扶不弱豹熊度去溪察物体;裁剪交换可戬定义裁剪平面;视口变换决定怎样把图形影射到屏幕上。在d d s 系统中,通过这些变换操作w 以实现用户扶不同韵距离、敬不同豹角度观察几何模型。3 。颜色模式o p e n g l 应用专门的函数和结构_ 来指定颜色模式。它提供两种可供选择的颜色模式:r g b a 模式程颜色素弓l 模式。在廷g 激模式巾,羧瞧峦绂、绿、蓬三静簇色分量来描述:在颜色索引模式中颜色由索引表中的索引值来决定。对于两种颜色模式,o p e n b l 还哥激选耩平覆着色处臻帮平滑着色经理。4 位图和图像o p e n g l 可以管理两种类激的位阁图像。其一是单色的位图,主要用于正确缝生成字德等简攀的图像;其二是囊彩位圈,可以按各秘方式在屡纂魏内存闻进彳予传递。5 巍鼹用户可以通过在应用程序中定义光源,以及宙们的位置和属性,来达到需要豹先照效采。o p e n g l 暹过酝黉如下霞种光,繇环境光、漫反射光、辐射光和镜颟光,来定义一个光源。物体被光照成类似现实物体,还与物体本身的材质有关。o p e n g l 可以对物体的材质进行定义,说明谨们对光的反应特性。6 。纹理映射通过众多的彩色多边形创建的物体往往因为袭现其细节不够而显得不够真实。当显示一个三维图像薅,在模型豪嚣辩主模羧鑫然器静绞毽,可激篌三缝图形更逼真、更自然。7 图像效莱增强o p e n g l 提供了一系列增强图像效果的溺数,它们通过反走样、融合、雾他第2 鬻d d s 蓉统简分等来增强图像效果。反走样改善图像中线的锯齿;融含可以提供半透明效果:雾纯翊霹戳模獭场景,健萌景更遥真。胃蕊对熬个场淤逶雩亍及走稃处理,氇可以实现类似照相技术中的对焦处理,还可以实现运动模糊等特殊效果。8 交互技术0 p e n g l 提供三秘工终模式:绘图模式、选掭模式期反选择模式。绘圈模式完成场景的绘制,可以借助于物体的几何参数及运动控制参数、场景的观察参数、光照参数与搴孝震参数、纹理参数、0 p e n g l 溺数靛众多鬻簸控裁参数、对蠢参数等和w i n d o w s 对话框、菜单、外部设备等构成时实交互的程序系统。在选择模式下,羹| j 胃浚对物俸进行命名,选择命名的物体,控胄l 对命名物体的绘制。而反馈模式则给程序设计提供了程序运行的信息,这些信息墩可反馈绘用户,告诉用户程序的运行状况和虢视程序的运行进程。9 。动画0 p e n g l 提供的双缓存技术能够使图像的帧与帧之间平滑嫩过渡,为实现图形魏动疆效果爨捷了霹靛。这静援术是先在蠹存串截建努硬犊基零溺景,警一巾贞在屏幕上显示时,程内存中同时对即将霪在屏幕上显示的臌一帧( 第二帧)逶彳予修改。当第二帧完成之耨,就清豫缓存中的先前桢 第一桢) 以便显示后一帧,同时,第二帧占用的缀存也被清刷。这样循环交巷下去,以致产生平浸的动画。2 7 2o p e n g l 的函数库简介在徽机版本中,o p e n g l 提供了三个函数库:旗本库、实用库和辅助库 3 】 1 1 】1 5 】。基本疼是o p e n g l 匏核。函数疼,这令疼孛豹函数题子鬻援豹、核心瓣晷形处理。使用这些函数可以执行顶点操作、定义光照及颜色、生成纹理坐标、撬行瘫簿转换及缘素搽佟等。该痒静壅数均戳“璐”为藩缀。实用库是基本库的一套予程序。该库的函数通过调用核心库的函数,可以执行包捂纹理歇射、坐标交换等操作,并可以绘翻n u r b s 曲线和曲面阻及球体、圆柱体、厕盘等简单的几何形体。该库的溺数均以“g l u ”为懿缀。辅助库提供了一些基本的窗口篱理和简单形体的绘制函数,如初始化窗口及浚入竣滋处璞等食令,醛及绘裂拣俸、爨繇、裰柱俸、立方体等铸摹足 霹形体的命令厢数。该库的函数均以“a t l x ”为前缀。1 6第3 章d d s 系统结构设计第3 章d d s 系统结构设计3 1 瑟翘对象麴d d s 系统结梅设计在第1 章中,本文详细阐述了d d s 系统选择面向对象的编程技术作为系统的开发技术。奉节将遵循面向对象的方法对d d s 系统谶行结构分析和设计。丽离对象静方法可缓分为三个部分:面向对象分析,面向对象设计和面向对象程廖实现拉l 。3 1 。1 面向对象的分析瑟囱对象懿鐾熬是究残辩闫题空籽靛分耩帮建立系统模垄。其箕俸锓务楚确定积攒述系统中的对象、对象戆静态特征积动态特程、砖象耀懿关系滋及瓣象的行为约束等( ”。其主安内容归结为游态绩构分砉 积动态行为矜扳。在繁2 豢中,本文给出了d d s 系统的功能要求。1 静

温馨提示

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

评论

0/150

提交评论