软件工程毕业设计(论文)-基于虚拟现实的起重机的运动姿态的仿真

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

软件工程毕业设计(论文)-基于虚拟现实的起重机的运动姿态的仿真

武汉科技大学本科毕业论文本科毕业论文题目:基于虚拟现实的起重机的运动姿态的仿真学院:计算机科学与技术专业:软件工程学号:学生姓名:指导教师:日期:二〇一一年六月30\n武汉科技大学本科毕业论文摘要虚拟现实(VirtualReality,简称VR,又译作灵境、幻真)是近年来出现的高新技术,也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。随着Internet技术的高速发展,网络虚拟现实技术成为计算机领域最重要的技术之一。虚拟现实建模语言VRML环境的产生提供了一套完全的新标准、新过程以及新的Web技术。VR是一项综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。使该技术集成了计算机图形(CG)技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。30\n武汉科技大学本科毕业论文本文以VRML技术、Java技术及各种多媒体技术为依托,研究基于VRML的三维空间构建的实现方法和交互方法,系统漫游技术和优化技术,通过对场景建模技术的综合研究,提出了起重机系统的建模方法,综合利用Solidworks、3DSmax和VRML几种编辑器的各自特点,实现起重机虚拟场景的建立。用Javascript解决了其中的一些关键技术问题,设计操作控制面板界面和相应的模块,通过这些模块实现了不同形式的交互操作以达到不同的效果。实现JAVA与VRML的交互,通过AWT控制面板,可进行部分零部件的参数化设计。研究虚拟现实漫游,设计相应的模块,利用优化代码实现对象几何形状的建模方法,并提出并实现优化VRML文件和VRML文件的渲染韵方法。关键词:虚拟现实;VRML;JAVA;起重机AbstractVirtualreality(VR)isreferredtoastherecenthightechnology.Virtualrealityisusingthecomputersimulationproducedathree-dimensionalvirtualworld,providestheuseraboutvisual,auditoryandtactilesense,letuserslikethesimulationillustratesthebordersgeneral,canprompt,nolimittoobservethreedegreesofthingsinspace.WiththerapiddevelopmentofInternettechnology,computernetworkvirtualrealitytechnologytobecomeoneofthemostimportanttechnologyfield.Virtualrealitymodelinglanguage,fromtheuser'sstandpoint,essentiallyHTMLplusthirddimension.Butfromdevelopersstandpoint.VRMLenvironmentprovidesasetofcompleteproducedthenewstandard,newprocessesandnewWebtechnology.VRisacomprehensiveintegrationtechnology,involvingcomputergraphics,human-machineinteraction,sensingtechnology,artificialintelligenceandotherfields,itusecomputertogeneratelifelike3dsightandhearingandsmelletc,makethepersonfeelsasparticipantsthroughtheappropriatedevices,naturallyonthevirtualworldexperienceandinteraction.Usersmoves,thecomputercanpositionimmediatelycomplexoperation,precise3Dworld30\n武汉科技大学本科毕业论文imagesbacktoproducetelepresence.Thistechnologyhasintegratedcomputergraphics(CG)technology,computersimulationtechnology,artificialintelligence,sensingtechnology,displaytechnology,networkparallel-treatmenttechnologyachievementsinthelatestdevelopment,isakindofgeneratingbycomputertechnologyofhightechnologysimulationsystem.TakingVRMLtechnology,Javatechnologyandvariousmultimediatechnology,basedontheresearchontheVRMLtherealizationmethodof3dspaceconstructionmethod,thesystemandinteractionbetweentechnologyandoptimizationtechnique,roamthroughthecomprehensiveresearchofscenemodelingtechnology,andputsforwardthemodelingmethodofcranesystem,thecomprehensiveutilizationofSolidworks,3DSmaxandVRMLseveraleditorfeatures,realizetheestablishmentofcranevirtualscene.UseJavascriptsolvedsomeofthekeytechnicalissues,designoperationpanelinterfaceandthecorrespondingmodules,throughthesemoduleimplementsthevariousformsofinteractiveoperationtoachievedifferenteffect.RealizingtheinteractionwithVRMLJAVA,throughAWTcontrolpanel,canundertakepartofparametricdesignofparts.Virtualrealityroaming,designcorrespondingmodules,usingtheoptimizedgeometryobjectcoderealization,andputsforwardthemodelingmethodandrealizeoptimizationVRMLfilesandVRMLfilerenderingrhymemethod.Keywords:VR;VRML;JAVA;CRANE30\n武汉科技大学本科毕业论文目录1绪论11.1概述11.2课题研究的目的和意义11.3主要工作21.4系统开发梗概21.4.1系统开发环境21.4.2系统开发过程32虚拟现实建模语言VRML42.1VRML的工作原理及其基本特征42.1.1VRML的工作原理42.1.2VRML的基本特征42.2VRML的关键技术52.2.1VRML的文件格式52.2.2VRML浏览器52.2.3VRML节点和场景图结构62.2.4坐标系和坐标变换62.2.5路由和事件体系72.2.6原型72.2.7脚本语言72.3本章小结73系统三维模型的建立83.1功能要求830\n武汉科技大学本科毕业论文3.2建模软件的比较与选择83.2.1SolidWorks简介及应用83.2.23Dsmax的VRML应用93.2.3VRML编辑器的研究与选用113.3浏览器插件133.3.1BlaxxunContact143.3.2CosmoPIayer143.3.3BSContactVRML/X3D6.2143.3.4Cortona143.4建模的总体设计方法143.5本章小结154系统交互性的研究与实现164.1VRML自身交互功能的实现164.1.1自身交互的理解164.1.2自身交互实现的一般过程164.2通过脚本编程实现交互174.2.1VRML的Script节点174.2.2Javascript实现的交互功能184.2.3Java在VRML中的应用194.3通过EAl实现交互204.3.1EAI简介204.3.2EAI与SAI的比较214.3.3EAl的实现方式214.4系统交互框架224.5本章小结225系统优化技术235.1优化VRML文件235.1.1对象的重用235.1.2使用内联节点(Inline)235.2优化场景实例235.2.1塔吊阵列245.3本章小结25结论26参考文献27致谢2930\n武汉科技大学本科毕业论文30\n武汉科技大学本科毕业论文1绪论1.1概述虚拟现实[1](VirtualReality,简称VR)是一门综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,借助它您可以把自己完全置身于由计算机创造的神奇的虚拟世界,可以和虚拟世界中的物体进行交互,也可以静静的观察这个虚幻的世界。虚拟仿真是一种实验技术,它为一些复杂系统创造了一种计算机实验环境,使系统的未来性能测度和长期动态特性,能在相对极短的时间内在计算机上得到实现。从实施过程来看,它是通过对所研究系统的认识和了解,抽取其中的基本要素的关键参数,建立与现实系统相对应的仿真模型,经过模型的确认和仿真程序的验证,在仿真试验设计的基础上,对该模型进行仿真试验,以模拟系统的运行过程,观察系统状态变量随时间变化的动态规律性,并通过数据采集和统计分析,得到被仿真系统参数的统计特性,据此推断和估计系统的真实参数和性能测度,为决策提供辅助依据。虚拟现实侧重在表现形式,它可以是和现实背道而驰的;而系统仿真则侧重于真是复杂世界的科学抽象,真正反映出现实世界的运动形式。利用虚拟现实技术可以更好的帮助系统仿真验证模型的有效性,并可更直观、有效地表现仿真效果。虚拟现实首先是一种可视化界面技术,可以有效地建立虚拟环境,这主要集中在两个方面,一是虚拟环境能够精确表示物体的状态模型,二是环境的可视化及渲染。虚拟现实仅是计算机系统设置的一个近似客观存在的环境,为用户提供逼真的三维视感、听感、触感和嗅感的感受。它是硬件、软件和外围设备的有机组合。虚拟现实的关键是传感技术。虚拟现实离不开视觉和听觉的新型可感知动态数据库技术。可感知动态数据库技术与文字识别、图像理解、语音识别和匹配技术关系密切,并需结合高速的动态数据库检索技术。虚拟现实不仅是计算机图形学或计算机成像生成的一幅画面,更重要的是人们可以通过计算机和各种人机界面与机交互,并在精神感觉上进入环境。它需要结合人工智能,模糊逻辑和神经元技术。虚拟现实还具有多感知性(Multi-Sensory)、浸没感(Immersion)、交互性(Interactivity)、构想性(Imagination)等特性。1.2课题研究的目的和意义30\n武汉科技大学本科毕业论文近年来,虚拟现实系统在我国学术界和各个领域正处于迅速发展的阶段,然而,虚拟现实仿真的研究和应用仍然停留在实验研究和初级开发的阶段,亟需加强研究和发展。特别是对虚拟现实仿真概念的认识,还需进一步的普及和推广,研究开发具有内置仿真器的虚拟现实仿真系统,仍然是一项极具挑战性的工作。本研究课题为“虚拟现实起重机仿真系统的研究及实现”。本论文对起重机训练系统中的三维场景建模技术进行研究,用VRML及其相关技术构建场景模型,通过对VRML各种交互方法的比较研究,在起重机中实现了各种操作,提供了一个逼真的起重机虚拟环境,使其能够达到更好的训练环境[2]。1.3主要工作以VRML技术、Java技术及各种多媒体技术为依托,研究基于VRML的三维空间构建的实现方法和交互方法,系统漫游技术和优化技术,主要要做几个方面的工作:1)通过对场景建模技术的综合研究,提出了起重机系统的建模方法,综合利用SolidWorks、3DSmax和VRML几种编辑器的各自特点,实现起重机虚拟场景的建立。2)通过SAI设计了轴的运动,并用Javascript解决了其中的一些关键技术问题。3)设计操作控制面板界面和相应的模块,通过这些模块实现了不同形式的交互操作以达到不同的效果。4)实现了JAVA与VRML的交互,通过AWT控制面板,可进行部分零部件的参数化设计。5)实现了通过EAI来控制VRML场景中的物体。6)实现系统的几种视点漫游功能,通过跳跃型和非跳跃型视点的设定来控制观察者的位置、朝向,从而可以控制观察者在起熏机系统漫游中的视点。设计视点追踪模块,使其可以及时观察运动物体的轨迹。7)提出并实现优化VRML文件和VRML文件的渲染韵方法1.4系统开发梗概1.4.1系统开发环境系统开发基于WindowsXP。系统开发过程中以下几个软件为主要工具:1)FlashMXMacromedia公司开发的Flash的最新版本,功能强大的矢量动画制作工具。2)3DMAX4.0Autodesk公司Discreet小组开发的三维建模和动画制作软件,功能强大,可以在PC机上制作出具有图形工作站水平的模型和动画。3)VRMLPad1.2ParallelGraphics公司开发的VRML语言编辑器。4)Contact3DBlaxun公司开发的虚拟现实浏览器插件,安装方便,操作简单。30\n武汉科技大学本科毕业论文1)IIS5.0IIS(InternetInformationServer)网络信息服务是由Microsoft用于Internet/Intranet的核心服务器,集成于Windows2000操作系统中,用于实现网站的发布1.4.2系统开发过程根据软件工程学原理[2]系统的开发过程分为系统分析、系统设计、系统实现和系统调试等几个主要步骤。系统分析阶段是系统开发的第一个重要阶段,在系统分析阶段里不仅要对系统的开发环境、所要达到的功能等进行全面的分析,还要进行实地的考察和测绘,例如对校园的地理概貌、主要建筑的分布、道路的连接走向、湖泊桥梁、建筑物的建筑风格等进行实地考察,选择在适宜的天气、适宜的时间、拍摄建筑物、道路、代表性图像的照片,以备作为贴圈的素材。系统设计阶段需要对系统要求实现的功能进行全面的分析设计,并给出实现的方法和需要用到的软件。系统实现阶段分为电子地图实现和三维虚拟场景实现两个部分。电子地图以通过扫描仪获得的位图文件为模板,利用Flash制作出与实际校园景观相一致的电子地图,并实现漫游和动画功能。三维虚拟场景需要在3DMAX中进行建模,并输次成VRML语言的文件,在VRMLPad中可以对这些文件进行优化。系统调试是一个自始至终的过程,贯彻与整个开发过程。当一个开发过程结束后应该自觉的进行调试,将系统的出错率降到最小。30\n武汉科技大学本科毕业论文2虚拟现实建模语言VRMLVRML即虚拟现实建模语言[3],是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言,VRML不仅支持数据和过程的三维表示,而且能提供带有音响效果的结点,用户能与虚拟对象交互。2.1VRML的工作原理及其基本特征2.1.1VRML的工作原理VRML用文本信息描述三维场景,在Internet网上传输,在本地机上由VRML的浏览器解释生成三维场景。VRML的访问方式是基于Client/Server结合模式[4],其中服务器提供VRML文件,客户通过网络下载希望访问的文件,并通过本地平台的浏览器(Viewer)对该文件描述的VR世界进行访问,VRML的工作方式如图2.1:图2.1VRML的工作方式2.1.2VRML的基本特征1)基于ASCII码的低带宽可行性2)基于3D的着色引擎[5]30\n武汉科技大学本科毕业论文3)可扩充性2.2VRML的关键技术2.2.1VRML的文件格式VRML采用的是文本文件格式[6],常用的文本编辑器Notepad就可完成全部的编程任务,只需将文件保存为具有wrl扩展名的文件即可。VRML文件可以包括下列四个只要成分;VRML文件头、原型、造型和脚本、路由。并不是所有的文件都包含这些要素,唯一必须的是VRML文件头。VRML2.0标准的文件头为#VRMLV2.0utf8,是区分大小写的,并且必须放在文本文件的首行。VRML2.0文件格式兼容1.0文件格式,这个文件头有三个含义:第一,表明这个文件是一个VRML文件;第二,符合VRML2.0版本;第三,文件使用的是utf8字符集。2.2.2VRML浏览器VRML是解释执行的,浏览器就是其解释器。由于VRML广阔的发展前景,因此对其解释支持的浏览器很多,可分为三大类[7]:单独应用类(stand-aloneapplication):这类浏览器可直接从Internet上下载wrl文件并展现其图像,而不需要Web浏览器的支持。辅助应用类(helperapplication):这类浏览器是作为对某种网络浏览器的帮助,源文件不需进行编译。当网络浏览器遇到一个VRML连接时,就会启动帮助浏览器。插件类(plugin):这类浏览器是作为一种插件安装在网络浏览器上。浏览器的三个主要组成部分为:分析程序、场景图和听觉、视觉显示。VRML浏览器概念模型如图2.2所示:图2.2VRML浏览器概念模式30\n武汉科技大学本科毕业论文2.2.3VRML节点和场景图结构VRML定义了一组用以描述三维图形的对象,这些对象称为节点。VRML有许多对象类型,最简单的对象称为原始对象,VRML中节点被组织成一种分层的结构,称为场景。使用场景图数据结构来描述3D场景,场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。境界中的对象及其属性都用节点(Node)描述,节点按照一定规则构成场景图,也就是说,场景图是境界的内部表示。VRML的场景图结构是一种有向无环图,如图2.3所示:图2.3场景图结构最顶层节点是虚拟空间,它是场景图的基础,每一个场景图只能由一个虚拟空间,在虚拟空间下面,就是场所节点。每一个场景下面有一个或多个分支节点,一个分支节点对象是一个子场景图的根节点。在它下面建立一个基准坐标系变换节点,就可以相对这个坐标系拜访所需要的形体,拜访是需要给出形体的外观、几何信息等。2.2.4坐标系和坐标变换VRML的造型都是有坐标系[6]来定位的,而且是由坐标系上的VRML三维来设定其尺寸的,坐标系有X、Y、Z三个坐标方向构成,其方向可以由右手规则来确定,Transform节点是形成VRML场景层次结构的基础性节点,在Trandform节点中可以放入多个子节点,而这些子节点本身也可以是有许多个自己点的Trandform节点,这样就形成一个层次图。组合在一起构成各种复杂的VRML场景,从而形成多姿多彩的三维世界,最后形成一个整体,这就是VRML构造虚拟世界的基本原理。30\n武汉科技大学本科毕业论文2.2.5路由和事件体系VRML2.0与VRML1.0相比,最大的改进就是增加了交互性和动态能力,这节点通过事件入口(eventIn)接收事件,通过事件出口(eventOut)发出事件,一个节点的事件出口和另一个节点的事件入口之间用于传递的通路称为路由(route),通过路由联系起来的节点形成事件体系[8]。事件体系执行模型的一个概念性图,如图2.4所示:图2.4事件体系的执行模型事件由事件和时间戳组成,时间戳有两个作用:首先,它是描述事件机制时序流程的一种概念装置;其次,时间戳也可共Script节点使用,可以根据用户的动作顺序或事件质监的时间间隔来处理事件。2.2.6原型原型定义描述了一个新的节点类型,用户可以通过原型(Prototype)扩充VRML的节点类型集,它与VRML提供的标准节点类型是相同的,对新节点类型、属性的修改是由域来完成的,通过修改节点的这些域便可创建不同的类型。2.2.7脚本语言VRML支持多种脚本描述的编程语言,包括Java语言。常用的有VRMLScript、JavaScript。2.3本章小结本章针对虚拟起重机系统中的关键技术支持做了详尽的论述,正是该技术的优势实现了系统的功能。也就是依靠这些技术使系统成了一个完整的不可分割的整体。30\n武汉科技大学本科毕业论文3系统三维模型的建立3.1功能要求采用小型的桌面虚拟系统,支持立体显示、碰撞检测等功能;根据需求修改虚拟环境的结构和外观;实现Java与VRML的多种交互方式,建立动态的操作起重机等等。结合实际情况开发起重机系统需要采用如下技术:1)面向对象的技术;2)计算机图形技术;3)虚拟现实技术;因此,在开发起重机系统时提出了一下的建设目标;采用计算机图形技术,面向对象技术和虚拟现实技术进行起重机系统的开发,实现对三维模型的显示操作和管理的功能。3.2建模软件的比较与选择起重机系统涉及的物体多,要求的交互也多,所以一般推荐本系统采用VRML作为开发首选技术,模型制作软件:3Dsmax、Maya、Rhino、Solidworks等常规建模软件,也可以使用Canoma、Imagemodeler等照片建模软件,其中3Dsmax、Maya支持多种建模方式,3Dsmax不仅建模功能强大,而且其生成的三维模型可以转化到虚拟环境中。3.2.1SolidWorks简介及应用三维CAD软件在功能上,整个SolidWorks系统主要氛围机械设计(CAD)、工程分析(CAE)、数据加工(CAM)、产品数据管理(PDM)、产品交互动画(IPA)等部分。机械设计主要由三大模块构成:零件设计模块用于设计单个零件的三维模型通过输出的*.dsn文件,图3.1为SolidWorks零件轴承套设计的运行界面:30\n武汉科技大学本科毕业论文图3.1SolidWorks零件设计运行界面装配设计模块用于设计含有多个零件的装配体。它是通过各个相对独立的零件装配成,工程图绘制模块采用了三维与二维关联技术,工程绘图系统Drawing主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。如图3.2所示。图3.2SolidWorks输出为VRML的界面设置3.2.23Dsmax的VRML应用在使用VRML构造虚拟场景的时候,主要通过以下2种途径使用3DStudioMAX[9]进行产品建模的辅助设计:1)全健用3DStudioMAX进行产品造型,赋予其各种属性,然后用3DStudioMAX系统提供的导出(export)功能将场景文件(.max)直接转换成VRML格式(.wrl)的文件,如图3.3所示。图3.33DSMAX输出为VRML97的界面30\n武汉科技大学本科毕业论文下面介绍其中一些重要的选项:Nomals(法线):为对象指定真实的法线。CoordinateInterpolators(坐标插值):在输出的动画效果中修改编辑。Indentation(缩进):以缩进的方式编排VRML97文件的源代码。Primitives(几何参数对象):输出为VRML97几何参数对象。Flip-Book(翻书):将场景输出多个文件。PolygonsType(多边形类型):下拉列表框:Ngons(多边形):将面尽可能输出为多边形的面。Quads(四边形):将面尽可能输出为四边形的面。Triangles(三角形):将面尽可能输出为三角形的面。DigitsofPrecision(数字精度):通过设置小数点位数指定计算精度。2)利用3DStudioMAX中内嵌的VRML2.0Helpers格式工具,但是生成后的wrl还需要手工进行少量的修正,如图3.4所示。图3.4VRML2.0Helpers格式工具VRML2.0Helpers内有12种VRML特有造型。当然,3DStudioMAX不是万能的,在导出的过程中,还很有可能丢失数据,通常,丢失的数据有以下几种:(1)丢失整个几何体或是几何体的精确度以及物体背面的渲染数据。(2)丢失拓扑信息。在多数情况下,三维物体对象被导出为VRML对象物体的时候,很容易丢失它们之间的拓扑信息和场景结构。(3)丢失语义。语义主要包括对象物体的维度和单位、名称、约束和关系。(4)在用三维造型软件进行场景设计中,如果为对象物体安排了某种行为(例如运动),在这种导出的过程中几乎不可能保存下来。因此除此之外,利用文本编辑器编写VRML代码文件就是非常必要的,后面介绍的VRMLPAD就是一款优秀的VRML文本编辑器,而当它们相结合时.创建虚拟产品世界就变得轻松了。30\n武汉科技大学本科毕业论文3.2.3VRML编辑器的研究与选用尽管So1idWorks、3DSMAX可以转换成vrml文件,但是它们转换出的文件并没有充分应用VRML的特性、文件体积也还是偏大,在制作一些简单的物体时,充分利用VRML的基本几何形体,用VRML编辑器就会显得更加的方便和快捷,编辑器的好坏直接影响到建模时的效率及使用的方便性,它往往可以达到事半功倍的效果,下面就一些常用的编辑器进行研究、比较和选用可视化编辑器有:3.2.3.1VRMLBeansPAKSOFT公司的VRMLBeans生成最终的VRML3D场景。新版本的VRMLBeans在用户界面上更加贴近用户,并且提供了20余种3D物体供用户造型使用,充分体现了其易用的特性。尽管如此方便快捷,但VRMLBeans有其无法克服的缺陷:一是为了追求易用性,它只能创建静态场景VRML97规范的新特性几乎没能体现出来;二是仅能对软件事先提供的3D物体进行若干次组合,用户无权创建出自己构思的基本物体,而且没有权利对所提供的物体进行属性设置,用户创建自由度大大降低;三是它完全屏蔽了VRML的树形文件格式,不能够显示出其内部数据结构,3D物体之闻的层次关系也无法显示,对于初学者来说也许很方便,但是对于想构造较大规模场景的用户来说太困难。3.2.3.2White-duneWhite-dune现已成为VRML97的一个可视化开发工具,它能够读取VRML97的文件,并能够随时改变场景图,它的图形用户界面(GUI)主要由两部分组成:2DGUI和3DGUI。2DGuI主要进行二维的操作,如调整窗口,显示国标、菜单、按扭等等。图3.5显示的是主窗口的二级窗口(红色字体)。图3.5White-dune的主窗口其中二级窗口可分为下面几个部分:(1)工具栏它包括一行标准工具栏和三行结点工具栏:几何体工具栏、插补器工具栏、纹理材质色彩工具栏等。30\n武汉科技大学本科毕业论文(2)路由图它在视图中显示各个事件入口(eventin)和各个事件出口(eventout),可以直接用鼠标连接路由,避免了文本编辑器中容易编写的错误。(3)场景树图它可以使你详细的了解整个图形的结构,方便进行详细的设计。(4)场景图全方位的显示三维场景。(5)域图设置各个相应的参数值。(6)路径图可以进行快速的动画设置White-dune是可应用于Unix/Linux和WIND0WS操作系统下的低级VRML97工具。它可以显示和允许用户改变图象/代码。与其他高级工具不同,它是以简便模式基于VRML97标准之上的软件。它以简单实用的特点可以快速的生成三维场景,尤其是对于一些规则几何体非常高效,并可生成和读取VRML文本文件,方便与其它编辑器配合使用。3.2.3.3CosmoWorldVRML可视化编辑工具CosmoWorld,为SGI公司的产品,非常不错的vrml可视化编辑软件,界面类似3Dmax,可以可视化的制作VRML场景,和添加大部分的交互,它的界面如下图3.6所示。图3.6CosmoWorld的界面3.2.3.4VRMLPadVRMLPad是PamllelGraphics公司的一个专业的VRML编辑软件,它能动态的错误描述整和debugger、VRML场景预览等,它可以进行本地和远程文本编辑。VRMLPadv2.1是最新版本,它具有以下的一些特性:30\n武汉科技大学本科毕业论文1)在编辑VRML文本时能够根据上下文关系及其在场景图中的位置给出一个包含合适的VRML标识文本的列表以供选择。2)动态错误检测提示用户语法、值类型的错误或警告。提供域值是否在适当范围中。可以校验是否有重复的节点定义,是否有不匹配的域名或路由。如图3.7所示。图3.7VRMLPad的动态检测错误3)语法强调显示支持可定制的VRML语法强调显示。4)场景图树的显示5)多文档同时编辑在同一个VRMLPad中同时打开多个文件以便进行文件之间的复制、剪切、粘贴的操作,或方便的查找替换文本。6)资源文件管理使用Resourceviewwindow(资源查看窗)来查看、编辑、浏览文档的资源。资源中某个文件重命名时,相关的文件链接也会同时自动更改。7)自动化操作与自定义脚本操作高级用户还可以通过建立来插件、VBScript、JavaScript宏命令来在VRMMLPad环境中执行自定义的任务。8)整合脚本调试器9)节点缩略图3.3浏览器插件如果说VRML是一种语言,那么VRML浏览器就是它的解释器。VRML浏览器基本上实现了物体的变换效果,包括移动模式和观察模式,以及灯光、视角变换、模糊、裁剪、阴影,投影、碰撞的浏览。尽管Plugin和Java可以互相通信,但实际上它们并不是直接通信,Liveconnect提供了他们之间进行通信的通道,如图3.8所示30\n武汉科技大学本科毕业论文图3.8VRMLplug-in和Java的通信示意图VRML插件多达30余项,下面介绍几种常用的插件:3.3.1BlaxxunContact最新版本Contact6,设计目的主要就是网络3D聊天,应用于多用户环境,3.3.2CosmoPIayerCosmoPlayer能应用在Macintosh、SGI、Windows95和WindowsNT、Windows2000、WindowsXP等平台。要在UNIX上看wrl文件,需下载SGI的CosmoPlayer。3.3.3BSContactVRML/X3D6.2Bitmanagement正式推出了BSContact浏览器,在场景版权保护、场景视觉效果、大场景浏览速度都取得了很大的发展。3.3.4CortonaCortonaVRMLClient是ParallelGraphics公司的VRML插件,特点如下:1)完全支持VRML97,包括Java语言和JavaScript语言、支持硬件加速渲染,以及软件渲染、兼容IE、Netscape。2)目前Cortona4.2版本支持MPEG等视频、流媒体文件,Mp3等多种音频、F1ash动画文件、NURBS曲线。支持键盘输入、拖放控制,支持VR眼镜等硬件设备。Cortona的浏览方式控制分为移动模式和观察模式两种。而且处在不同的浏览方式下鼠标的显示方式也各不相同。3.4建模的总体设计方法本系统VRML建模软件采用的是Solidworks、3DSMAX、White-dune、CosmoWorld、VrmlPad相结合的方式,利用各自软件的优点,弥补其它软件的缺点,达到快速、方便的目的。30\n武汉科技大学本科毕业论文1)用So1idWorks2005的强大零部件建模功能建组,然后迸行分类、分批的导出为wrl文件。2)用3DSMAX6制作了司机室、厂房、灯光环境、天空背景等。充分利用内嵌的VRML2.0Helpers格式工具,导出为wrl文件。3)用White-dune0.28制作了大车运行的支架,主梁旁的底板、小支撑架等。4)将上边的wrl文件利用Inline节点全部引入,用CosmoWorld打开、并进行位置的调整,如位移、旋转、缩放、视点的移动等。5)White-dune的域值编辑和路由设置比CsmoWorld方便的多,此时用White_dune来编辑域值,连接路由。6)通过Cosmoworld与White_dune的相互配合、引用进行调整,VRMLPad的文本处理功能,在这进行最后的调试和运行,观察其效果。本系统中整体建模的步骤、方法如图3.9所示:图3.9维建模步骤、方法3.5本章小结通过各种VRML编辑器和浏览器插件,该系统所建立的三维模型的贴图是来自经过处理的数码照片,而这些照片要在Photoshop中预先经过适当的处理,才使得导入到VRML中的浏览效果更加理想。另外,该系统还采用B/S模式在Internet上运行,浏览器端使用的是通用的用户界面,具有更广泛的实际的使用意义。30\n武汉科技大学本科毕业论文4系统交互性的研究与实现交互性的定义就是可以在希望的时候控制各个三维场景对象.改变运动的方向和结果,使人真正地参与到整个控制过程中。4.1VRML自身交互功能的实现VRML是一种虚拟现实三维立体网络程序设计语言,它和HTML最大的区别除了造型是三维立体之外,用户还可以通过很多种手段实现和造型的交互,而对于虚拟现实的高级应用层次来说,实现与场景和造型的交互,才是VRML应用的核心内容。事件是交互性的基础。4.1.1自身交互的理解VRML绑定包括:绑定在一起的节点和在节点之阃绑定的路由。绑定两个节点之后,第一个节点通过这样的路径传送给第二个节点的信息叫作事件。事件包含一个值,当一个节点接收到一个事件时,它将根据节点的特征开始动画或者其它事情。节点的输入插座称为eventIn,输出插座称为eventOut。当链接一个路由时,eventIn接受输入,eventOut将事件输出。4.1.2自身交互实现的一般过程VRML中的动画的产生一般是由于任何一个坐标系的位置、方向和形体比例发生了变化,从而使物体按你所想的方式飞行、平移、旋转或按比例缩放。利用Imterpolator内插器节点和TimeSensor时间传感器节点,再加上ROURE语句,人们可以编写出VRML动画程序。VRML提供了一组描述事件触发器的节点。1)TouchSensor是一种用来检测观察者的接触和将事件输出的传感器。2)Visibilitysensor用于判断某个包围盒区域的可见性等等。3)PlancSensor传感器节点用于指点设备在平行于Z=0平面上的动作,4)SphereSensor节点将二维的拖动解释为三维空间中绕局部原点的旋转。5)CylinderSensor节点把二维的拖曳输入转变为三维空间中沿Y轴的旋转。30\n武汉科技大学本科毕业论文VRML提供了多个控制动画的插补器以及控制时间的时间传感器可以实现动画效果,而通过一系列的触动检测器,可以实现用户与VRML虚拟世界中的三维对象的直接交互。这些节点包括;1)ColorInterpolator用以产生颜色的动态变化。2)CoordinateInterpolator使形体产生动态变形。可用来动态改变形体的坐标,主要用在下面节点上:IndexedFaceSet、IndexedLineSet、PointSet、Extrusion。3)利用OrientationInterpolator动态改变观察方向,或这改变形体的方向。4)利用Positionlnterpolator动态改变观察位置,或这改变形体的位置。5)利用Scalarlnterpolator动态改变透明程度、雾的影响范围。编写步骤:对于发出事件的传感器节点和接收事件的节点,编写具体的内容,并用DEF命名;对于接收事件的其它节点也用DEF命名,并根据具体需要,将收到的事件传给具体参数,从而产生动画效果。4.2通过脚本编程实现交互VRML这种不通过程序语言控制,完全依靠定义的新节点和场景中运动的执行模式相结合来产生事件的动态行为,在功能上具有一定的局限性。它仅仅只能完成一些即定的简单的交互,而当需要进行一些更为复杂的交互时,使用它本身的传感器就显得无能为力了。这就需要利用Script节点进行功能上的扩展。4.2.1VRML的Script节点Script节点在有些方面和其它节点是相似的,但在别的方面却很特殊。相同点在与它和别的VRML97节点一样.可以把它放在场景等级中的任何地方;可以用DEF命名它.可以从它那里移走事件,也可把事件传给它。不同点在于:一个Script节点的字段是由用户延伸的,到达这些字段的事件会自动地移到和Script节点相关程序中。其它节点的fleld、eventIn,、eventOut及erposedField在标准中己规定好,不能变动,而Script节点的:field、eventIn,eventOut可根据需要自由增加。实际上这种嵌入式脚本程序其目的是允许用户自己定义带有输入输出事件的节点。Script节点有以下四个作用:1)可感应环境的变化及用户的操作。2)从其它节点接收事件并进行一些处理。3)内部的程序块可完成一些计算工作4)通过发送事件使外界产生相应的变化目前VRML脚本编程接口主要有以下二种方式:1)内嵌在script节点中的描述性语言如JavaScript。2)在script节点中引用外部Java类,用来实现一些特殊的、Javascript语言所不能实现的功能。30\n武汉科技大学本科毕业论文4.2.2Javascript实现的交互功能4.2.2.1Java与JavascriptJava是C++的衍生语言。JavaScript一种脚本语言。它可与HTML超文本标记语言、Java脚本语言结合一起实现与Web客户的交互,它可以直接放入HTML文档之中,无需编译就可在支持JavaScript的浏览器中运行[10]。4.2.2.2Javascript的函数、对象和方法函数由JavaScript代码组成,用于完成某项任务。可以将经常执行的一些过程定义为函数,以后直接调用它而无需反复书写代码。定义函数时,在函数名前要加上function,在调用时常常接收参数,参数写在文件名后的括号中,如果没有参数,括号里将没有任何内容。在JavaScript中,对象(object)是包含一组变量的变量。对象可以包含在另一个对象中。可以说,一个对象就是一个函数,为了使用一个对象,必须先定义该对象的函数,用于提供对象的结构。一个对象的属性不仅可以是变量,还可以是一个函数,这个函数不能被赋值,只能调用,并将返回值赋给某个变量。4.2.2.3在VRML中使用JavaScriptJavaScript程序可以直接放在VRML程序里,也可以利用url调用VRML程序外的JavaScript程序,每个函数只有两个参数有用。如果函数有第一个参数,这个参数的类型必须和函数名的类型相同,此参数可用来接收从路由ROUTE传过来的事件出,其数值为ROUTE传过来的事件出的数值,如果函数有第二个参数,其类型应为SFTime[11],通常用time表示,表示函数调用时的时间值。其相应的触发控制按扭的路由如下:ROUTEstouch.isActiveTOstime.enabledROUTEstouch.isActiveTOwave2.loopROUTEstime.fraction_changedTOspib.set_fractionROUTEspib.value_changedTOcbox.set_translationROUTEstime.fraction_changedTOscpi.set_fractionROUTRscpi.value_changedTOccable.set_scale30\n武汉科技大学本科毕业论文4.2.3Java在VRML中的应用Java是一种跨平台,适合于分布式计算环境和广泛使用的网络编程语言。它具有如下特性:简单性、面向对象、分布式、解释性、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发机制、具有很高的性能[12]。Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。VRML提供了一个与场景外的程序相结合的节点script,利用它可以实现VRML和Java结合来扩展VRML的应用。选用这两种语言作为开发工具,最大程度地利用了它们各自的优点,完全满足系统设计的需求.4.2.3.1Java程序代码和scrlpt节点之间通讯实现二者的通讯有两种方式。第一种方式是用事件从script节点传递数据到Java程序。第二种方式是相反的过程即把数据从Java程序返回到VRML场景。1)从script节点到Java代码2)从Java程序到嘶斑节点3)VRML和Java之间的类型转换。如表4.1所示。表4.1VRML和Java之间的类型映射VRML类型Java类型SFStringStringSFFloatfloatMFStringstring[]MFNodeBaseNode[]SFColorfloat[]MFColorSFRotationSFVec3fSFVec2fSFImagebyte[]MFRotationfloat[][]MFVec2fMFVec3fSFNodeNode30\n武汉科技大学本科毕业论文4)Java与Script节点工作流程图。工作流程图如图4.2:图4.2Script节点和Java程序的交互PublicabstractclassScriptimplementsNode{//程序脚本初始化时调用Publicvoidinitialize0;//获得一个接口域的旬柄ProtectcdfinalFieldgctField(Stringfieldname);//获得cvemout事件接口的句柄ProtectedfinalFieldgetEventOut(Stringfieldname);//程序脚本接收到一组事件时自动被调用PublicvoidprocessEvents(intcount,Evemevents[]);//程序脚本接收到一个事件时自动被调用PublicvoidprocessEvent(Eventevent);//processEvents0处理完事件后调用Publicvoidshutdown();1)4.3通过EAl实现交互4.3.1EAI简介EAI(ExternalAunhoringLanguage)称为外部编程接口,它定义了一组外界可访问的VRML流览器的功能,而浏览器的插件接口允许嵌入在Web页面里的对象之间能够相互通信,它就利用这一功能使得Web页面上的JavaApplet能够控制同一页面上的VRML浏览器里的内容。30\n武汉科技大学本科毕业论文EAI的概念如图4.3所示:图4.3EAI的概念4.3.2EAI与SAI的比较从某些方面来讲EAI的功能和Script节点的功能是一致的,两者都具有强大的编程计算能力。但它们之间的区别也是很明显的由表4.4可以清楚明了地比较通过Script节点和通过EAI通信的区别。表4.4通过Script节点和通过EAI透信的比较4.3.3EAl的实现方式EAI是一个与VRML插件相联系的Java包。它由三部分组成Vlml.extemal、Vrml.extemal.fieid、Vrm1.extemal.exception。在使用EAI功能时,需要将这两个包拷入到java安装目录下的,jre\lib\ext中,这样在可以在import中引用。EAI允许一个JavaApplet主要以三种方式访问VRML中的场景:(1)可以发送一个事件到VRML场景中节点的事件入口。(2)可以收到VRML场景中节点的事件出口发出的最新值。30\n武汉科技大学本科毕业论文(3)当VRML场景中节点的事件出口发出一个事件时,能得到一个通知,激活callback方法。在JavaApplet中使用EAI,可以实现JavaApplet与VRML虚拟空间之间的相互通信。要建立JavaApplet和VRML场景的通信,首先要获得一个浏览器类的实例,浏览器类是对VRML他场景的一个Java封装,它不仅包括全部的浏览器脚本语言接口,还包含有getNode()方法。4.4系统交互框架在本系统中主要采用了三种交互方式,其中通过自身交互是最基本的交互方法,这三种方式实现的功能及相互关系如图4.5所示:图4.5系统交互方式框架图4.5本章小结通过描述虚拟起重机实现了详细的设计和实现,着重讲解了场景的建模,树的建模,汉字的表示等等。叙述了在系统实现过程中要面临的核心问题。作者本着尽职尽责的原则,利用所学以及一些资料的帮助来达到完成系统设计的最佳要求,但是由于本人的能力有限所以不能达到完美,其中有许多技术上的瓶颈需要以后解决,但是时间有限所以不一一解决,有待进一步开发。30\n武汉科技大学本科毕业论文5系统优化技术5.1优化VRML文件整个起重机系统包括许多部件,将这么多的部件加载到一个大场景中,其代码量相当可观的。VRML文件大小在两方面影响到场景,一方面是服务器与浏览器之间的传输时间,另一方面也直接影响到将场景载入浏览器。所以,在创建场景的同时必须要考虑对场景的优化,充分利用VRML提供的高级造型技术。我们采取了以下一些方法:5.1.1对象的重用在本系统中有许多对象是相同的。为减少代码及避免重复编程,利用了DEF、USE机制。对于在场景中多次使用的对象,如主动轮、轴、通盖等等,可在该对象首次使用时用DEF给物体命名,以后仅需通过名字即可引用该物体。这样避免了进行重复的设计工作,也大大减少了文件长度。5.1.2使用内联节点(Inline)内联就是将一个大的VRML文件分割成许多小分块,每一块包含一个独立的造型,最后将这些小文件组合在一起,构造出要得到的大文件。I5.2优化场景实例通过VRML文件的优化和LOD技术,系统场景的加裁速度和浏览速度增快,达到了较好的可视效果,起重机系统的场景的效果图如图5.1~5.2所示:图5.1场景效果图(俯视)图5.2场景效果图(侧视)30\n武汉科技大学本科毕业论文5.2.1塔吊阵列利用单个塔吊形成塔吊阵列,具体实现代码:#VRMLV2.0utf8Background{skyAngle[1.1691.571]skyColor[0.30.30.80.50.50.80.90.90.9]groundAngle[1.1691.571]groundColor[0.10.10.10.30.30.30.80.80.8]}Viewpoint{position-3.02.024.0description"array_front"}#themiddleoneInline{url"crane.wrl"}#theleftoneTransform{translation-30.00.0-40.0children[Inline{url"crane.wrl"}]}#therightoneTransform{translation40.00.0-60.030\n武汉科技大学本科毕业论文rotation0102.0children[Inline{url"crane.wrl"}]}塔吊阵列效果图5.3图5.3塔吊阵列效果图5.3本章小结本课题开发的虚拟塔吊系统可以直接链接到WWW上,该系统是基于超文本的信息检索工具,它通过超链接把虚拟塔吊节点上的相关的信息有机地组织在一起,用户只需发送检索请求,它就能自动地进行相应的定位,找到相应的检索信息。正是因为有了WWW工具,才使得我们所做的工作更加的具有实际的意义。随着计算机拜络的发展,人们想要获取信息,己不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。这种虚拟塔吊系统更能很好的对信息的直接、准确接收,并能进一步实施远程监控的目的。30\n武汉科技大学本科毕业论文结论地理信息系统与Internet的有效结合是目前和未来GIS的发展目标,万维网以其开放性和友好界面迅速成为网络信息处理和分布的载体。以万维网为平台的CIA构件模型和浏览器/服务器模式是GIS在网络时代发展的新趋势。本课题研究并实际构建了一种全新的基于万维网的虚拟塔吊漫游系统,其有创意的工作在于以下几点:1)实现了虚拟现实技术与网络电子地图的完美结合系统首先登录的是网络电子地图界面模块,该模块是由ActionScript的编程技术实现的,通过点击网络电子地图模块上的热点链接可进入到三维场景模块,将网络电子地图与三维虚拟场景的浏览结合为一个统一的整体。2)实现了网络与GIS的结合,一种新的WebGIS方式的尝试该系统适应网络时代发展的要求,虚拟塔吊漫游系统是基于Internet构建的,使得塔吊的作业信息可以在WWW上为用户所了解,达到了很好的社会实用性效果。3)实现方式具有新颖性,利用常用的软件来实现,非使用专业的平台。一般我们讲到GIS,肯定会想到是GIS的平台,也就是专业的GIS软件,而本系统就是突破了这种传统的模式,使用了非专业的平台,利用通用软件Flash、3dsmax、Photoshop等,是对WebGIS发展进行了一次全新的尝试,实践证明该WebGIS技术是确实可行的。4)实现了二维网络地图与三维空间浏览的结合,具有强大的三维功能。GIS的平面地图的发展是比较成熟的,功能也是全方位的,如高级查询、最短路径、位置描述、定位功能等,但是三维空间的设计是比较薄弱的环节,本系统这是弥补了三维浏览的这种不足。5)实现了多种软件的优势互补,是一种综合运用不同软件建立一个系统的有意义的尝试。Flash绘制网络矢量图形、3DMAX的三维建模、VRML构建三维虚拟空间、Photoshop的对图形处理和修改等这些软件的优势在该系统中被发挥得淋漓尽致,将儿种常用的软件恰当的配合使用这是本系统的有意义的工作之一。30\n武汉科技大学本科毕业论文参考文献[1]曾建超,俞志和.虚拟现实的技术及其应用[M].北京:清华大学出版社.1996[2]张金钊,张金摘,张金锐.虚拟现实三维立体网络程序设计语言VRML[M].北京:清华大学出版杜,2004,2[3]姜安德,周玲.VRML从入门到精通[M].北京:国防工业出版社,2002[4]巩微.关于用虚拟现实技术进行远程教学的研究[J].辽宁大学学报。2002,29[5]贾镐丽,宋端智,冯雪君.网络虚拟实验室应用研究计算机工程与科学[M],2002,24[6]王海燕,李庆军,曲庆尧等.2l天学通VRML2.0[M].北京:人民邮电出版社,1998[7]代玉仁.用ⅥiML建造虚拟燕大校园及实现运动实体仿真的应用研究[D].[硕士学位论文].唐山:燕山大学,2002.[8]DavidR,Nadeau.BuildingVirtualWorldswithVRML[J].EEEComputerGraphicsandApplication,1999:March/April:18[9]李铁,徐进云.3dsmax4完全使用手册[M].北京:电予工业出版社,2002[10]DonaldHeam,M.PaulineBaker.ComputerGraphics(SecondEdition)[11]LinMC,StefanGottschalk.CoIlsiondetectionbetweengeometricmodels:asurvey.ProceedingsofIMAConferenceonMathematicsofSurfaces,1998[12]陆昌辉,仇刚,蔡勇.VRML入门与提高[M].北京:北京大学出版社,2003[13]王琳,冯正进.利用VRML构造交互式虚拟现实环境[M].计算机应用,2000.8[14]汪兴谦,牛燕明,邓淳淳.VRML与JAVA编程实例讲解[M],北京:中国水利水电出版杜,2002[15]周万.基于虚拟现实的动态设计及系统实现:[D].[硕士学位论文].武汉:华中科技大学,2002[16]张国宣,韦穗.虚拟现实中的LOD技术[J].微机与发展,2001.1[17]王晓楠,王仲海.虚拟现实技术及其应用[J].航空计算技术,2002.3(2)[18]吴艳梅,张广萍.用Wml实现虚拟实验室的设计方法[M].微型机与应用,2001.(12)[19]Wiggins,G.ChemistryontheInternet:Thelibraryonyourcomputer.JchemInfComputer’Sci,1998,38[20]徐冰。基于VRML交互式虚拟产品设计坊的设计和实现:[D].[硕士学位论文]。杭州:浙江工业大学,200230\n武汉科技大学本科毕业论文[21]陈俊华.VRML一第二代www技术核心.情报科学,2001(6)[22]汪兴谦.VRML虚拟造型实战演练[M].北京:中国水利水电出版社,2002[23]季美萍,张培.3dsmax4应用指南[M].北京::人民邮电出版社,,2001[24]耿祥义.Java基础教程[M].北京:清华大学出版社,2004[25]王汝传,姚旭敏,王海艳等.基于Java和VRML,虚拟场景通信方式的研究[J].系统仿真学报,Vol5N07,2003.30\n武汉科技大学本科毕业论文致谢光阴如梭!一转眼,四年的大学生生活就要结束了。对这四年多来的生活进行回顾,要对所有帮助过我的入表示最真挚的谢意。在这里我首先耍感谢我的班主任杨福俊老师和辅导员孙莉娟老师,无论是在我的学习还是生活上,老师们都给予了极大的关心和爱护。丰富的学识,严谨的治学态度,谦逊的处世风格,对我有很大的影响,对我今后的工作、处世都有很大的益处。在这里,我向老师们致以最崇高的敬意和深深的感谢。还要感谢我的导师郭宏老师,感谢他在我论文选题和写作期间对我的耐心的指教。同时,我还要感谢我们班全体同学,感谢他们在我的学习、生活中给予了无私的关心和帮助。在这个班级中,大家互相学习、互相帮助、取长补短,作为班级的一员,我感到很幸运。在老师和同学们的帮助下,我体会到了克服各种困难,攻克难点,研究工作取得进展以后的无比喜悦。最后要感谢我的亲人、朋友,我深深的感谢他们对我的信任、支持、关心和帮助。最后我要感谢论文的评审老师,感谢你们的辛勤工作。30\n武汉科技大学本科毕业论文30
查看更多

相关文章

您可能关注的文档