基于java和vrml虚拟场景通信方式的研究

基于java和vrml虚拟场景通信方式的研究

ID:21866020

大小:62.00 KB

页数:9页

时间:2018-10-25

基于java和vrml虚拟场景通信方式的研究_第1页
基于java和vrml虚拟场景通信方式的研究_第2页
基于java和vrml虚拟场景通信方式的研究_第3页
基于java和vrml虚拟场景通信方式的研究_第4页
基于java和vrml虚拟场景通信方式的研究_第5页
资源描述:

《基于java和vrml虚拟场景通信方式的研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Java和VRML虚拟场景通信方式的研究引言VRML(VirtualRealityModelingLanguage),即虚拟现实建模语言,是的3D模拟,是一种三维造型和渲染的图形描述性语言,通过创建一个虚拟场景以达到现实中的效果。VRML凭借其强大的三维功能,真正将Inter变成了一个广阔的三维空间。VRML是虚拟现实的软件实现方法之一,是建立和体验一个新世界的通信媒介。VRML把“虚拟世界”看作成一个“场景”,而场景中的一切都看作“对象”(也就是“节点”),它使用场景图数据结构来建立3D实境。VRML的一个显著的优点就是交互性,可以实现互动的场景。虚拟世界中动画节点具

2、有广泛性和多样性,可以将虚拟世界各个部分的传感器和内插器串起来,从而使三维造型运动起来。但对于一些复杂的动画动作,由VRML提供的内插器和感应器,显得比较局限,在这个时候,将VRML和java有效的结合在一起将增强VRML的动画效果、交互能力,本文就VRML中使用java的两种方式进行讨论和比较,并应用java的浏览器类实现了用VRML构建的校园导游图(3D)中的小地图(2D),并且实现了两者之间的相互控制。1Java程序和VRML场景的通信前面己经提过,VRML场景和用户的交互性的实现需要两个基本因素:行为和执行模式。行为描述了将要发生的事件,而执行模式则实现来回传送场景

3、实体的方法,行为通过执行模式改变场景中的VRML对象的状态。在VRML场景中有两种行为决定事件的产生,即静态行为和动态行为。静态行为是说场景中运动的模式是和定义的新节点相结合达到的,并没有需要使用程序,只是两个节点通过一个语句来结合,它也就决定了只有一种运动可能,这种可预制的运动形式远远不能满足用户对动画和交互性的需求。动态行为则用一段程序逻辑去决定事件的产生。在VRML中不能显示场景行为改变的逻辑,因为它没有节点支持这种逻辑,场景也就被限制在预先定义的路线上,沿预定的路线来传递先前的事件。所以控制场景事件的程序,也就只能在场景的外部。VRML有支持它自己的API(Appl

4、icationProgrammingInterface),这样就提供给Java程序一个可以访问VRML浏览器的界面和可执行的环境。Java对VRML的所有支持都是通过附加的封装类实现(VRML浏览器插件的安装程序自动将这些类安装到指定目录下)。通过这些类,Java程序就能够访问VRML场景、接受和发送事件、从页面上得到VRML对象,实现对VRML场景的完全控制。VRML中使用Java有两大类方式,即通过内部Script节点和外部编程接口(EAI)。一般VRML浏览器都支持Java语言。1.1通过Script节点和路由(Route)实现Java程序与VRML的通信Script

5、节点是连接VRML和Java的桥梁,其中url字段是它与外部程序联系的关键,url是上一个对象的完全地址,指出了外部程序所处的位置,不管是本地的或者是在X络远端的合法程序都能被使用。甚至该字段的值能直接被赋为合法的源程序。Script不仅支持java语言,还支持javascript脚本语言和vrmlscript脚本语言(javascript的一个子集)。Java程序之所以能够访问Script节点,是因为在Java的vrml.node包中含有一个Script类,它是一个抽象类,通过对Script类的继承,Java程序便可以与Script结点建立联系,从而达到控制VRML其它结

6、点的目的。有了Script节点和Script类,VRML和java就可以通信了。首先定义Script节点中的各域域值,接着便设置路由(Route)使VRML中的其它节点与Script节点联系起来,当与Script节点有联系的节点发生事件时,事件通过路由传给Script节点的eventIn域,Script节点则通过url域中指定的地址找到java类,该类必须继承自Script类。Java类开始工作,最先执行的是initialize()方法------进行初始化工作,在initialize()方法中必须获得Script节点中eventIn或field域的值,或者把java中的值

7、返回给Script中的eventOut域。getField、getEventIn、getEventOut都是Script类提供的方法:getField(”fieldName”);getEventIn(”eventInName”);getEventOut(”eventOutName”);作为参数的fieldName、eventInName、eventOutName要与Script节点中定义的名称相符合,对应的Field类的子类也要与Script节点中定义的各种Type类型一致。Field类的子类存在于vrml.fil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。