首页 - 范文大全 - 文章正文

智能交互技术的研究内容(基于VRML与Java交互的研究)

时间:2020-10-16 11:21:58 作者:黑曼巴 分类:范文大全 浏览:16

通过这些类,Java程序可以访问VRML场景,接收和发送事件,从页面获取VRML对图像,实现对对VRML场景的完全控制。通过脚本节点,vrml和Java之间的交互是通过使用VRML的附加包来实现的。SAI专注于虚拟场景的内部处理,在浏览器中访问对场景的节点;EAI主要用于提供与外部环境通信的能力,并从VRML浏览器外部获取场景节点和事件结构。

虚拟现实建模语言(VRML)是一种在网络上使用的三维形状和交互环境的场景描述语言,具有分布性、多媒体集成性、交互性和平台无关性等优点。VRML自带的插值器和传感器可以实现简单的计算机动画和交互。然而,在一些高级应用中,对只依赖于虚拟现实语言,这有很大的局限性。虚拟现实语言与Java的交互可以有效弥补虚拟现实语言的一些不足,增强虚拟现实语言的动画效果和交互能力。本文研究了虚拟现实语言和JAVA在对的交互。首先,介绍了传统的人工智能和企业应用集成方法。他们使用的JDK版本被限制在JDK1.4以下,无法充分利用由Java逐渐增强的新功能。为了解决这个问题,我们提出了一个基于web脚本的交互方案,并给出了该方案中需要注意的一些问题。最后,通过虚拟摄影仿真实验验证了该方案的可行性。1基于VRML和Java之间交互的传统的Java对VRML支持是通过附加的封装类实现的(VRML插件的安装程序会自动将这些类安装到指定的目录中)。通过这些类,Java程序可以访问VRML场景,接收和发送事件,从页面获取VRML对图像,实现对对VRML场景的完全控制。基于SAI的1.1 SAI(Script authoring interface)是一个脚本编程接口,它是由VRML实现的一个脚本节点,用于扩展其功能。脚本节点是连接VRML和Java的桥梁,其中的url字段指定了执行脚本或脚本文本本身的URL。脚本不仅支持Java语言,还支持JavaScript脚本语言和vrmlscript脚本语言。通过脚本节点,vrml和Java之间的交互是通过使用VRML的附加包来实现的。*、vrml.field.*和vrml.node.*由浏览器插件提供。通过继承对,脚本类,Java程序可以与脚本节点建立联系,从而控制VRML的其他节点。通过脚本节点和脚本类,虚拟现实语言和Java可以进行通信。在这种机制中,首先定义脚本节点中的每个域,然后设置路由将VRML中的其他节点与脚本节点连接起来。当与脚本节点相关联的节点中发生事件时,该事件通过路由传输到脚本节点的eventIn域,脚本节点通过url域中指定的地址找到Java类。Java类开始工作,通过初始化建立脚本节点中每个域的引用,通过事件处理进行逻辑控制,并从脚本节点修改事件的值;最后,通过路由传输到其他节点,完成整个通信过程。基于SAI的交互在如图1中显示。在SAI中,VRML和Java程序只与脚本节点相关联,而Java程序只通过脚本节点和路由改变VRML世界中的节点值,控制点必须在脚本节点的事件输出字段中设置。当有大量数据要传输时,这种为每个数据设置事件输出字段和路由的方法非常麻烦。1.2 EAI(外部创作接口),基于EAI,是一个外部编程接口,由一组关于浏览器操作的功能组成。通过调用这些函数,外部程序可以影响虚拟现实世界中的对象。EAI是VRML和浏览器中的Java Applet之间的中介,为客户端功能扩展和更强大的动态交互提供技术支持,使得一些实时交互功能可以在客户端实现,而不需要依赖服务器,同时也为VRML、Java Applet和html文件嵌套在同一个网页中提供技术支持。SAI专注于虚拟场景的内部处理,在浏览器中访问对场景的节点;EAI主要用于提供与外部环境通信的能力,并从VRML浏览器外部获取场景节点和事件结构。基于企业应用集成的交互关系如如图2所示。通过EAI包提供的浏览器类和节点类,VRML世界中的各种节点可以由EAI外部程序直接控制,无需脚本节点、脚本类和路由,极大地丰富了VRML的功能。然而,这种方法也有其局限性。它只能通过Java小程序来控制虚拟现实世界。

2基于网络脚本的交互虽然SAI和EAI都可以增强VRML的交互功能,但它们都有:的致命缺陷。他们要求JDK的版本必须低于1.4。随着Java功能的逐步增强,其JDK版本也在逐步升级,JDK1.6已经发布,JDK1.7测试版已经出现,并将很快正式发布。在某些应用程序中,可能需要Java的新功能,这需要更高版本的JDK的支持。如果采用SAI或EAI,VRML和Java就不能正常交互。为了解决这个问题,我们提出了一个基于web脚本交互的方案。

2.1基于网页脚本交互的基本思想,在客户端执行网页脚本语言,可以增强网页的动态交互,可以方便地与VRML场景交互和与Java程序相互调用。在基于网络脚本的交互机制中,VRML和Java Applet并不直接通信,而是使用用JavaScript语言编写的脚本作为桥梁。也就是说,当VRML需要调用Java程序来执行一个任务时,首先在同一个网页中调用JS函数,然后在这个网页中调用Java Applet程序来执行特定的函数;在Java Applet区域修改参数后,首先调用同一个网页中的JS函数,然后JS函数更新场景中对象的属性值,从而达到VRML和Java交互的目的。基于网络脚本的交互式如图如图3所示。2.2基于web脚本交互的主要步骤和关键代码结合2.1中web脚本交互的基本思想,本方案的主要步骤和关键代码如下。1)分析功能模块和调用关系,设计Java Applet用户界面,设计各种功能函数(包括网页脚本函数和Java Applet成员函数)。2)在VRML场景文件中添加触发器和脚本节点,定义要用DEF访问的节点的名称,并添加路由。从脚本节点调用网页脚本函数到事件处理函数的代码是: browser . load URL(' JavaScript 3360 fun('参数');',' ');其中浏览器是浏览器对实例,加载URL是浏览器接口函数,而fun是脚本函数名。3)根据(1)中的分析,Java Applet子类被定义并编译成目标文件。类成员函数调用网页脚本函数的代码是:JSObject。getwindow(此)。eval ('JavaScript 3360Fun('参数'));这里需要引入类JSObject,即语句导入Netscape。JavaScript。jsobject添加在类文件的开头;当添加小程序到网页的源文件时,添加“MAYSCRIPT”,并根据需要添加几个参数。4)将虚拟现实场景文件、Java小程序和网页脚本功能添加到网页源文件中。添加虚拟现实场景文件

“myScene.wrl”是一个VRML场景文件,id=‘Scene’是必需的,它是网页中场景的唯一标识符,将在网页脚本中引用。添加网页脚本功能主要涉及:a。在调用Java Applet时,函数调用的一般形式是: document . my AppLet . fun(…);其中,文档是当前文档的对图像,myApplet是当前页面中Java applet的对图像,fun是Java applet对图像的成员函数,可以根据需要添加参数。要访问虚拟现实场景节点,必须创建一个引擎对图像:我的场景引擎=场景。引擎指向虚拟现实场景(由标识定义的场景标识为中的“场景”);然后,您可以在引擎对图像的帮助下访问场景节点。参考VRML场景节点的一般形式是:毫秒引擎节点(“节点名”)。字段(“字段名称”),其中nodename是在(2)中定义的节点名称,fieldName是节点的域名。引用在脚本函数中可以看作一个变量,取其值相当于获取虚拟现实场景的节点域值,赋值相当于更新虚拟现实场景。2.3基于web脚本的交互应注意的问题。基于网页脚本的交互方案中需要注意的主要问题是:VRML场景文件、Java小程序和网页脚本功能应该放在同一个网页中。2)访问虚拟现实场景节点中的节点名称必须是直接在虚拟现实场景文件中定义的节点,通过内联导入的文件中定义的节点无效。3)当网页脚本函数访问Java Applet成员函数时,需要对Java Applet子类进行安全签证。关于签证相关问题,请

上一篇:灵魂脱壳的意思(灵魂脱壳(教师手记之450))

下一篇:(加德满都喧嚣中的净土)

猜你喜欢
发布评论
登录后发表评论
登录后才能评论

AI 新用户?

免费使用内容重写服务

开始新的写作