VRML的Java编程
VRML语言本身提供的交互性,基本上由传感器节点加上路由机制实现,其实现方法是静态的;要灵活地控制三维场景,需要操作的是动态地创建和删除路由。在VRML2.0中引进了一个Script节点,该节点包含一个url域,为实现交互提 供了编程的空间,它是一个字符串数组,在其中可直接编写描述性质的程序,也可指向如JavaScript,VrmlScript,Java 编写的程序文件,其中应用最多的Java文件。
Java对VRML的支持是通过附加的封装好的类来实现的,这些类主要是从java.lang.Object和java.lang.Exception基类中继承下来的,是JAVA与VRML结 合的必要手段,可以完成接收事件输入、发送事件输出、访问节点的域及使用VRML的对象等功能,利用java语言的这些功能,可以实现对VRML场景的较高级的控制。
如果想要实现与HTML页面的通讯,更加灵活地控制VRML场景,需要使用EAI(External Authoring Interface外部程序接口)。它是一个与VRML插件相联系的Java包,它由三部分组成:Vrml.external、Vrml.external.field、Vrml.external.exception。EAI允许一个Java Applet主要以三种方式访问VRML 中的场景:1)、可以发送一个事件到VRML场景中节点的事件入口。2)、可以收到VRML场景中节点的事件出口发出的最新值。3)、当VRML场景中节点的事件出口发出一个事件时,能得到一个通知,激活callback方法。在Java Applet中使用EAI,可以实现Java Applet与VRML虚拟空间之间的相互通信。
具体的实现方法是:VRML 文件可以使用 HTML 文件的标记EMBED或
OBJECT等包含在 HTML 文件中,而 Java Applet 可以通过 HTML 文件的标记
CODE等同样包含在 HTML 文件中,这样包含在同一个 HTML 文件中的 Java Applet 和 VRML 虚拟境界可以相互访问。
利用 JAVA APPLET 实现对 VRML 场景的控制。因此需要考虑三个方面的问题:APPLET,VRML 及 APPLET 与 VRML 的通讯。其中 APPLET 与 VRML
的通讯是关键,在后面核心技术中将详细讨论。 经反复研究系统分为以下几个包(package 包是 JAVA 组织代码的一种方法,通常把实现相关操作的类组织在同一个包中)可有效地组织代码。
上表的列举的是个包中的主要类,其中的辅助类未列举。下面以调节指定零件的透明度为例,简要说明 APPLET 程序实现 VRML 场景交互操作的一般过程,各主要类调用关系。图3-9 为调节指定零件透明度的流程图。该流程图比较清楚地说明了 APPLET 程序实现 VRML 场景交互操作的一般过程。
开始
开始
启动HTML 页
VRML
APPLET
装载VRML 场景
得到VRML 浏览器句柄
否
装载完毕
成功得到句柄
是
处于接收事件状态,
等待事件输入
建立与VRML 场景的通讯
事件
否
得到VRML 场景所有相关元素的引用
(主要由SceneWalker 类实现)
有事件产生
是
VRML 和 APPLET 事件桥(VRML 中的事件由APPLETZ中重载callback 的类处理,APPLET 中的事件,通过对 VRML
元素的引用实现场景改变)
初始化APPLET 用户界面(包
括主工具栏、选项框、测量框, 装配框等)
初始化完毕,处于接收事件
状态,等待事件输入
事件
否
有事件产生
是
图
图 3-9 调节指定零件的透明度
关于图 3-9 流程图的几点说明:
1、此流程图大致勾画了出了本系统实现对复杂 VRML 场景交互操作的实现的一般过程,未涉及核心技术,核心技术将在下一小节详细讨论。
2、流程图分两条主线,一条是 VRML 浏览器插件控制的 VRML 场景,一条是
APPLET 通过对浏览器插件的引用,实现对 VRML 场景的交互操作。
3、VRML 和 APPLET 事件桥极为关键,它实现了 APPLET 和 VRML 的通讯。
4、VRML 和 JAVA APPLET 都是基于事件的的编程语言,因此流程图中的“有事件产生”判段循环实际上是不存在的,是为了使流程图结构清晰而加上去的。
核心技术
经过本章前面几个小节的讨论,已基本清楚实现 VRML 场景交互操作的方法。本小节主要讨论针对复杂 VRML 场景(本系统要求)实现交互操作的核心技术。主要分树形结构的快速遍历、获得 VRML 场景所有元素句柄、动态创建路由等。
一、树形结构的一种新型快速遍历算法
零部件装配关系形成装配树
您可能关注的文档
最近下载
- 2025版生物科技产品代理合作协议.docx VIP
- CH/Z 3017-2015 -地面三维激光扫描作业技术规程.pdf VIP
- 实施指南(2025)《CHZ 3017-2015 地面三维激光扫描作业技术规程》.pptx VIP
- 05SFG04 钢结构装配式防倒塌棚架结构设计图集.pdf VIP
- 急救仪器设备药品使用及管理.pptx VIP
- Westinghouse西屋反渗透净饮机WFHRO-F用户手册.pdf
- 日立扶梯HE12图纸.pdf VIP
- 2025版初中音乐课程标准.docx VIP
- 2025年最新初中音乐课程标准.docx VIP
- 艺术课程标准2025:音乐教育新篇章.pptx VIP
原创力文档

文档评论(0)