基于VRML_Java的虚拟现实技术在可视化装配中的应用_朱正强.docVIP

基于VRML_Java的虚拟现实技术在可视化装配中的应用_朱正强.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VRML_Java的虚拟现实技术在可视化装配中的应用_朱正强

基于VRML-Java的虚拟现实技术 在可视化装配中的应用 朱正强1 吴介一1 孔竞飞1 易 红2 (1东南大学CIMS中心,南京210096) (2东南大学机械工程系,南京210096) 1)内部Script节点 Script节点的URL域可以包含一段JavaScript 程序或者是链接的一个Javaclass.当directOutput域 为FALSE时可以将Script节点理解为事件通路上 的一个智能节点,它接收事件输入对其处理后产生 事件输出,这条事件通路仍由ROUTE指定.当di- rectOutput为TRUE时程序可以获得其他节点的引 用,并直接对其域进行赋值,而不必遵从ROUTE指 定的事件通路. 2)外部编程接口EAI(external authoring inter- face) Script节点从VRML场景内部提供了与Java的 连接,而EAI定义了与外部HTML页面中的Applet 通信的接口.它的基本思想是将Java Applet与 VRML置于同一Web页面,在Java Applet中建立 browser对象以标识一个唯一的VRML场景,并由 此获得对VRML场景中已定义节点的引用,它通过 直接指定引用节点的域值而达到动态效果.这样, Java Applet即可控制VRML场景,也能进行与HT- ML等其他媒体的交互以及网络控制,从而可以实 现复杂的虚拟环境系统.EAI作为VRML标准的扩 充已经提交ISO,有望在将来正式成为国际标准的 一部分. 总之,很多功能既可通过Script节点也可利用 EAI实现,一般来说对于单一的VRML事件实现交 互及运算功能可选择内部的Script,若需集成多种 媒体,并进行复杂网络控制,则更宜于使用EAI,自 然其编程也要复杂一些. 在系统实现中需要进行大量与服务器的通信, 同时有比较复杂的用户界面控制,为此采用EAI作 为与VRML的交互手段. 1.5 动画演示的实现 用户根据装配CAPP系统推导得到的装配顺 序[3]进行可视化装配验证,当装配成功之后,一方 面可以对原来的装配顺序进行修改,同时也可将此 虚拟装配过程保存供其他用户通过网络回放,实现 虚拟装配的动画演示.一般在VRML中往往通过使 用插值器节点改变对象或者视点的移动轨迹来实 现动画效果,但这种方式需要手工编写VRML文件 内容,一旦改变了装配路径就需要重新改动源文 件,因此灵活性不高.采用基于动态模型的运动控 制,用户装配时保存零件运动的关键点,Java Applet 在获得关键点信息后,根据用户指定的运动速率和 运动方式(如按直线或曲线移动),在定时器的控制 下得到下一时刻物体的位置并通过EAI发送到 VRML场景中从而达到动画效果.所有关于运动的 计算和控制均脱离VRML由Java实现,可以使用户 方便地对运动路径进行修改和控制,也有利于不同 场合下对运动信息进行共享. 1.6 碰撞检测算法在系统中的应用 碰撞检测是虚拟装配时对装配路径进行干涉 检测的核心技术.现在的VRML97标准中所提供的 collision节点仅能检测观察者视点和物体之间是否 发生碰撞,而不提供物体间的碰撞检测,这部分功 能需要另外扩展.一种解决方法是在VRML场景中 增加一个自定义的CollisionObject节点,把需要进 行碰撞检测的物体纳入其中,同时在VRML浏览器 中加入用于碰撞检测的函数库[5],而无论是对商业 公司提供的VRML浏览器进行扩展还是自己编写 符合需要的浏览器都会影响通用性.为此我们考虑 将碰撞检测的功能在服务器端实现,即由Applet获 得VRML物体的位置后将其作为参数传送给服务 器端的运算对象,并由其调用碰撞检测函数库对服 务器端与其相应的装配模型进行运算.Applet调用 服务器端对象有几种实现方式,如Socket,RMI, CORBA以及基于HTTP协议的pplet-Servlet通信, 由于网络所需传输的流量不大,因此对于性能造成 的影响是可以忍受的,而它的益处在于不需要对浏 览器进行扩展,客户端的运算压力得到减轻,同时 可以在不影响客户端设置的情况下对核心运算模 块进行升级. 本文采用的SOLID2.0算法库[6]是GJK算法[7] 的一种实现,很适合于基于多边形表面描述的复杂 几何体的碰撞检测. 2 应用实例 系统基于Java技术构建,用户界面采用Swing 组件,出于实现的简单性和通用性考虑,采用Ap- plet-Servlet通信实现客户端和服务器之间的位置传 递和结果返回.基于SOLID2.0的碰撞检测模块用 C++编写并编译成为动态链接库,由服务器上的Ja- va程序通过JNI(Java native interface)对其进行调 用.目前基于“堆叠”思路的装配验证方

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档