java 在控制vrml场景中的应用 [文档在线提供]new

java 在控制vrml场景中的应用 [文档在线提供]new

ID:34615428

大小:113.44 KB

页数:4页

时间:2019-03-08

java 在控制vrml场景中的应用 [文档在线提供]new_第1页
java 在控制vrml场景中的应用 [文档在线提供]new_第2页
java 在控制vrml场景中的应用 [文档在线提供]new_第3页
java 在控制vrml场景中的应用 [文档在线提供]new_第4页
资源描述:

《java 在控制vrml场景中的应用 [文档在线提供]new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java在控制VRML场景中的应用(转贴水木清华)---迪...http://www.liuma.net/bbs/display.asp?TOPIC_ID=1344---迪客论坛www.liuma.net/bbs---TEL:010-86373511020-3364057613911253261Java在控制VRML场景中的应用(转贴水木清华)Java在控制VRML场景中的应用SMTHID:F117E-mail:Zz_Benjin@163.com为了更好地适应网络和虚拟现实技术日新月异的发展,ISO于1998年1月通过了基于Intern

2、et媒介的新一代虚拟现实场景描述标准--VRML2.0(VirtualRealityModelingLanguage,虚拟现实建模语言)的认证。由于VRML2.0具有分布式、交互性、平台无关、真三维、多媒体集成等众多优点,所以标准一经推出,就引起人们的高度重视。近年来,在VRML浏览器上实现游览景点仿真、三维城市虚拟实境漫游、大气环境模拟、河道三维地形显示等成功的案例层出不穷。其中,大多数对静态场景的构造设计和利用VRML本身的事件通路进行简单的交互等处理得比较完善,对于如何从场景中获得用户感兴趣的数据、如何让用户能够精确地设置场景的参

3、数等高级交互功能却没有得到应有的重视。本文讨论了Java和VRML的通信原理,并在此基础上建立了网上地球模型,用Java实现了从场景中实时获得指点设备的坐标、动态控制场景等功能。1.Java程序与VRML场景间的通信Java对VRML的所有支持都通过附加的封装类实现(VRML插件的安装程序自动将这些类安装到指定目录,如CortonaVRMLClient的默认路径为:…etscapeprogrammepluginsplywood.jar)。通过这些类,Java程序就能够访问VRML场景、接受和发送事件、从页面上得到VRML对象…

4、…,实现对VRML场景的完全控制。根据访问方式的不同,又可分为:1.1通过脚本编程接口SAI(ScriptAuthoringInterface)访问这种方式下,Java的角色相当于JavaScript或VBScript等脚本语言。被控制的VRML场景中必须定义Script节点:DEFctrlscriptScript#定义Script节点ctrlscript{eventIneventTypeNameeventName#定义事件输入eventOuteventTypeNameeventName#定义事件输出fieldfieldTypeName

5、fieldnamedefauleValue#定义私有域url"Example.class"#url域包含处理事件输入、输出的程序模块}在Script节点中,事件输入和事件输出用来接受、发送事件的响应值;私有域的作用是标识VRML场景中的将被Java访问的节点;url域指向某一字节码(如Example.class--Example.java编译后的结果),处理所有的事件。Example.class必须是从vrml.node.Script这个抽象类派生出的子类。该类定义了initialize、shutdown和eventsProcessed

6、、processEvent、processEvent五个特定的成员函数,浏览器自动调用它们;保护成员函数getField和getEventOut用于获得节点的私有域和事件输出。只需要给出域或事件的名称,这些函数就能返回Field派生类的实例,实例中保存了通向VRML场景的句柄,改写它们的值就相当于改变了场景。另外,Script的基类BaseNode提供了getBrowser成员函数用来获取Browser对象(节点所在浏览器的控制接口),调用Browser类定义的createVrmlFromString(…)等12个标准成员函数,实现动态

7、生成场景、改变节点、生成事件通路等功能。1.2通过外部编程接口EAI(ExternalAuthoringInterface)访问这种方式多用于Applet和VRML场景都嵌在HTML页面上时两者的通信。此时,Applet主要利用封装在vrml.external包中的Browser类访问场景。Browser类的基类是IBrowser接口类,该类封装了VRML场景,除了包含SAI方式中可以使用的所有函数外,还有getNode(…)函数用来直接获得(不需要访问Script节点)VRML场景中使用DEF关键字定义的节点对象。类似SAI访问方式,

8、调用getEventOut、getEventIn获得事件输入、输出的实例,改变事件输入值相当于改变场景。例如,VRML场景中有:DEFMoverTransform{…},Java程序中代码如下:……Brow

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

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

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