- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)对其进行调
用.目前基于“堆叠”思路的装配验证方
您可能关注的文档
最近下载
- 2025年广东东莞农村商业银行春季校园招聘笔试历年典型考题及考点剖析附带答案详解.docx
- 制浆车间生产初步技术方案(桉木).docx VIP
- 部编三年级上册语文第二单元主题阅读.doc VIP
- ARKInvestBigIdeas2025-歌者PPT中文校对版.pdf VIP
- 新中国55年统计资料汇编-全国篇.doc VIP
- 2025西双版纳供电局及所属县级供电企业项目制用工招聘(14人)笔试参考题库附答案解析.docx VIP
- (三十六计.docx VIP
- 2025年10月全国自考《马克思主义基本原理概论》真题及答案 .pdf VIP
- 大数据数据资产价值评估.pdf VIP
- 钟君申论笔记.doc VIP
文档评论(0)