文档介绍:Java 在控制VRML场景中的应用(转贴水木清华)---迪... /?TOPIC_ID=13441 of 42004-11-16 19:37---迪客论坛---TEL:010-86373511 020-33640576 **********Java 在控制VRML场景中的应用(转贴水木清华)Java 在控制VRML场景中的应用SMTH ID:F117E-mail :Zz_Benjin@为了更好地适应网络和虚拟现实技术日新月异的发展,媒介的新一代虚拟现实场景描述标准--VRML (Virtual Reality Modeling Language,虚拟现实建模语言)的认证。由于VRML 、交互性、平台无关、真三维、多媒体集成等众多优点,所以标准一经推出,就引起人们的高度重视。近年来,在VRML浏览器上实现游览景点仿真、三维城市虚拟实境漫游、大气环境模拟、河道三维地形显示等成功的案例层出不穷。其中,大多数对静态场景的构造设计和利用VRML本身的事件通路进行简单的交互等处理得比较完善,对于如何从场景中获得用户感兴趣的数据、如何让用户能够精确地设置场景的参数等高级交互功能却没有得到应有的重视。本文讨论了Java和VRML的通信原理,并在此基础上建立了网上地球模型,用Java实现了从场景中实时获得指点设备的坐标、动态控制场景等功能。1. Java程序与VRML场景间的通信Java对VRML的所有支持都通过附加的封装类实现(VRML插件的安装程序自动将这些类安装到指定目录,如Cortona VRML Client的默认路径为:…\netscape\programme\plugins\)。通过这些类,Java程序就能够访问VRML场景、接受和发送事件、从页面上得到VRML对象……,实现对VRML场景的完全控制。根据访问方式的不同,又可分为:(Script Authoring Interface)访问这种方式下,Java的角色相当于JavaScript或VBScript等脚本语言。被控制的VRML场景中必须定义Script节点:DEF ctrlscript Script #定义Script节点ctrlscript{ eventIn eventTypeName eventName #定义事件输入eventOut eventTypeName eventName #定义事件输出field fieldTypeName fieldname defauleValue #定义私有域url "" #url域包含处理事件输入、输出的程序模块}在Script节点中,事件输入和事件输出用来接受、发送事件的响应值;私有域的作用是标识VRML场景中的将被Java访问的节点;url域指向某一字节码(--),处理所有的事件。。该类定义了initialize、shutdown和eventsProcessed、processEvent、processEvent五个特定的成员函数,浏览器自动调用它们;保护