系统仿真学报
JOURNAL OF SYSTEM SIMULATION
V ol. 17 No. 9
Sept. 2005 • 2287 •基于Java 和MySQL 的虚拟现实动态场景构建方法
孟永东1,2,田斌2
(1 湖北省水电工程施工与管理重点实验室(三峡大学),湖北宜昌443002;2 三峡大学土木水电学院,湖北宜昌443002)
摘要:虚拟现实建模语言(VRML)作为描述网络三维虚拟场景的标准,已广泛应用于各行业的
可视化仿真相关研究,然而V RML 以及其新标准X3D 在动态场景的构建和场景对象的实时信息获
取方面很不完善,通过建立用于存储虚拟场景物体的几何特征参数的M ySQL 数据库,利用V RML
语言提供的J ava EAI 编程接口,并结合J DBC 数据库驱动技术,实现了基于J ava Applet 的从M yS QL
场景几何信息数据库到虚拟现实动态场景的实时快速构建,以及场景对象到对应属性信息数据库记
录的连接,最后给出了水电工程混凝土大坝浇筑过程可视化仿真的应用实例。关键词:Java;
MySQL;VRML;动态场景;可视化仿真;分布式;交互性
文章编号:1004-731X(2005)09-2287-04 中图分类号:TP39; TV511 文献标识码:A Research of Structuring VR Dynamic Scenes Based on Java and MySQL
MENG Yong-dong1,2, TIAN Bin2
( 1 Hubei Key Laboratory of Construction and Management in Hydropower Engineering , China Three Gorges University, Y ichang 443002, China;
2 College of Civil & Hydropower Engineering , China Three Gorges University, Y ichang 443002, China )
Abstract: The virtual reality modeling language (VRML), as the standard of describing the web three-dimension virtual scenes, is already applied to the visual simulation relevant research of every profession and trade extensively. But VRML and X3D (the new standard of VRML) are not very perfect in construction of the dynamic scene and acquisition of the real-time information of the scene objects. Through setting up the MySQL database which stored the geometrical property parameter of virtual scene objects, EAI programming interface was exploited which was offered by VRML language and based on Java Language, and combined with JDBC database technology to realize virtual reality dynamic scenes real-time structure effectively based on Java Applet through getting data from MySQL scene database of geometry information, and the scene objects could be connected with the records of attribute information database. Finally, the visual simulation application instance of hydroelectric project concrete dam build course was given.
Key words: java; mysql; vrml; dynamic scenes; visual simulation; distributed; interactive
式。X3D 支持多种文件编码,即VRML97 和新增的XML
语言(Extensible Markup Language)和压缩的二进制格式。
X3D 使用模块化的结构来提供扩展性和弹性。在与数据库
安全有效的连接方面,X3D 没有提出很好
的解决方法。但是通过外部创作接口EAI 可以融合Java 的
强大的数据库功能和VRML 的灵活性来构造丰富的、交互
式的三维虚拟空间。本文正是通过建立用于存储虚拟场景物
体的几何特征参数的MySQL 数据库,利用VRML 语言提供
的Java EAI 编程接口,并结合JDBC 数据库驱动技术,实现
了基于Java Applet 的从MySQL 场景几何信息数据库到虚拟
现实动态场景的实时快速构建,以及场景对象到对应属性信
息数据库记录的连接和交互式查询。
引言
VRML(V irtual Reality Modeling Language)为虚拟环境
的建立提供了规范,综合了现有三维软件的景象描述语言的
优点。VRML 程序是一种解释执行、实时建模着的文本程
序,它用节点(Node)和路由(Route)两个基本要素构成
虚拟世界场景,VRML 场景内部以树型结构存储,而外部采
用分布式场景组织,为在互联网上发布提供了极大的便利。
VRML 包含3D 动画、音效、传感器触发、事件输入输出、
行为控制、支持多种脚本与多重使用者等功能,真正在Web
上实现了动态页面,并加强了互动功能,达到真正虚拟的效
果。但是VRML 标准在描述几何体、交互和程序整合方面
存在缺陷。为此VRML 的新版本X3D 加入了新的二维节点,
并且可以很方便的加入新的参数化图元,在X3D 标准中还
可以很方便的引入NURBS 之类的新的对几何体的描述方 1 VR 动态场景构建方法
Java 语言的特性使它可以最大限度的利用网络,Applet
是Java 的小应用程序,它是动态、安全、跨平台的网络应
用程序,Java Applet 嵌入HTML 语言,通过主页发布到
Internet。VRML97 标准提供的外部编程接口(EAI)实现了
Java 小应用程序与VRML 场景的通信。在Java Applet 中通
过使用al 包中的Browser 类和Node 类来实时添
加场景对象,而对VRML 场景Anchor 节点的触发交互操作收稿日期:2004-08-19 修回日期:2004-12-15
基金项目:湖北省教育厅自然科学研究计划项目基金(D200513010);湖
北省水电工程施工与管理重点实验室开放基金(HEF200401)
作者简介:孟永东(1976-), 男, 宁夏中卫人, 讲师, 硕士生, 研究方向为水
电工程施工可视化仿真技术;田斌(1963-), 男, 湖北宜昌人, 教授, 博士
后, 研究方向为高坝设计理论与高坝筑坝技术、水电工程施工可视化
仿真技术。
eventOut 产生时,Applet 便能自动调用一个例程来处理。这
种机制表现在接口类EventOutObserver 和类EventOut 的
advise()方法上,EventOutObserver 首先必须子类化,在子类
中实现callback(),然后调用advise()方法使该子类与要监听
节点的eventOut 挂接,只要被监听的节点eventOut 有输出,
挂接EventOutObserver 子类的callback()方法便会自动执行。
利用EAI 可以实现VRML 场景节点的动态添加和删除,
这也就是我们实现虚拟现实场景动态构建的技术核心。利用
类Browser 的CreatV rmlFromString()方法可以动态添加节
点,此方法的参数是一个内容符合VRML 规范的字符串,
它返回一个Node 类的实例数组。以下Java 程序段描述了利
用EAI 实现向VRML 场景添加Box 物体的过程:
import java.applet.*; import
al.exception.*;
public class AddNodeTest extends Applet
{ Browser browser=null;
Node base=null; Node[] box; EventInMFNode addChild;
public void init() { … … } public
void start()
{ Browser(this
); Node("Base");
addChild=(Event In("addChildren")
at VrmlFromString("shape {\n" +mysql 字符串转数组
" appearance Appearance {\n" +
" material Material { diff useColor 0.2 0.2 0.8 }\n" +
" }\n" +
" geometry Box {}\n" +
"}\n");
public void DoAdd() { addChild.setV alue(box); }
从以上代码可以看出,要添加一个节点首先要获得Base
父节点,该节点可以在VRML 场景中使用DEF 定义或者在
Applet 中使用ateNode("Base")语句创建。删除场图1 系统调用关系及通信方式
可以通过使用Javascript 脚本作为url 域值来间接调用Java
Applet 例程。利用netscape.javascript 包中的win 类可以实现
Java Applet 与HTML 页面的通信,相反,在HTML 中可以
直接使用Javascript 代码调用嵌入在HTML 中的Java Applet
的方法。Java Applet 通过使用JDBC 数据库驱动可以与
MySQL 数据库服务器建立连接,进行数据的读写操作。由
图1 可知,系统框架是以Java Applet 作为中介平台,来实
现MySQL 数据库、HTML 以及VRML 场景之间的相互通
信,Java Applet 和VRML 场景嵌入在客户端浏览器HTML
网页中,MySQL 数据来源于远程网络数据库服务器。
1.1 利用EAI 直接控制VRML 场景
EAI 是一种介于VRML 世界与外部环境的创作接口。
EAI 定义了一套针对VRML 浏览器的Java 类,通过这些类,
外部环境可以访问当前所运行的VRML 世界,从而在外部
直接操作、控制、修改VRML 世界内部的场景。
EAI 的设计是为了使Java Applet 能够通过VRML 事件
模型访问VRML 场景节点,从而控制VRML 场景。在VRML
的事件模型中,一个节点的eventOut 事件可以通过路由
Route 被传递至另一个节点的eventIn。当一个节点产生一个
eventOut 事件时,与之相关联的输入事件eventIn 将会收到
信息并进行处理。EAI 在VRML 的事件模型基础上,实现
了三种类型对VRML 场景的访问:
(1)访问VRML 场景中的节点。在Java 程序中通过
方法获得一个Node 类实例后,可以通过Node 类所提供的
getEventIn()方法和getEventOut()方法对节点进行访问。
(2)发送eventIn 事件给场景中的某一节点。在获取一
个被访问节点的EventIn 类实例后,便可向该节点发送事件。
(3 )读取场景中某一节点的EventOut 事件。和类
EventIn 相似,类EventOut 也是一个Java 抽象类。EAI 提供
了它的一系列子类,Applet 可以通过这些子类方便地读取每
个命名节点的eventOut。
EAI 提供了监听场景eventOut 的机制,当一个新的
景节点的方法与添加节点类似,删除节点调用的是
removeChildren 输入事件。
1.2 VRML 场景交互功能的实现
虚拟现实场景的交互一般包括对场景视点的切换(视图
旋转、平移、缩放等)、场景物体的捕捉以及场景锚点的触
发。视点的切换功能一般在虚拟现实浏览器中提供,对于物
体的捕捉操作需要使用Script 节点和Route 路由来完成,以
下VRML 代码实现了鼠标捕捉Box 物体的功能:
#VRML V2.0 utf8
DEF ChangeColor Script {
eventIn SFBool _over eventOut SFColor _color
f i eld SFColor overColor 0.8 0 0
f i eld SFColor outColor 0.2 0.2 0.8
f i eld SFBool _in TRUE
url "javascript:f unction _over () {
if ( _in ) { _color=overColor; } else { _color=outColor; }
_in=!_in; } " }
客
户
端
V ol. 17 No. 9 Sept. 2005 • 2289 •
孟永东, 等:基于 Java 和 MySQL 的虚拟现实动态场景构建方法
Anchor { description "This is a Box"
url "javascript: inf o();" children [ DEF t TouchSensor {enabled TRUE }, Shape { appearance Appearance {
material DEF m Material {diff useColor 0.2 0.2 0.8}} geometry Box {} }]}
ROUTE t.isOver TO ChangeColor ._over
ROUTE ChangeColor ._color TO m.set_diff useColor
通过指定 Anchor 节点的 url 域值可以调用 Java Applet 例程,实现场景锚点触发事件的交互。以上代码中 url 域的 javascript 域值调用了在 Applet 中定义的 getinfo()方法,以获 取对应点击物体的相关信息,AppletName 为在 HTML 中定 义的 Applet 名称。
1.3 Java Applet 与 HTML 之间相互通信
JavaScript 是用于 HTML 环境的开发语言,提供了能够 响应 Web 页面事件的脚本,可以完全访问浏览器窗口的各 个方面,善于合并 HTML 、Java Applet 小程序、插件、服务 器方程序和其他 Web 组件,形成完全集成的 Web 应用程序。 由于选用的 JDK 版本较低(详见第 3 部分),致使 Java Applet 不支持 Java 最新的图形用户界面 Swing ,如果实现 Java Applet 与 HTML 之间相互通信,则可以用简单灵活的 HTML 代码编写出精美的用户界面。利用 netscape.javascript 包中的 win 类并借助 HTML 中的 JavaScript 脚本可以实现从 Java Applet 到 HTML 页面的通信。在 HTML 中可以直接使 用 JavaScript 提供的 Applet 对象调用内嵌在 HTML 中的 Java Applet 的方法和变量。
1.3.1 在 Java Applet 中使用 JavaScript
Live Connect 提供了 Java 与 JavaScript 的接口 JSObject 类,可以允许在 Java Applet 小程序中使用 JavaScript 。表 1 列举了 JSObject 类的方法和描述。
(3)在 Java Applet 中用 JSObject 类的 getWindow()方
法创建 Javascript 窗口的句柄;
(4)在 Java Applet 中用 JSObject 类的 getMember( )方 法访问 Javascript 对象;
(5)在 Java Applet 中用 JSObject 类的 eval()方法调用 Javascript 方法。
以下代码段给出了 Java Applet 调用 HTML 页面中的 Javascript 脚本的过程:
//Java Applet 代码片段
import netscape.javascript.JSObject;
import netscape.javascript.JSException;
Window(this); //获取 JavaScript 窗口句柄 //访问 JavaScript 脚本方法, setvalue()定义见 HTML 部分。 win.eval("setvalue('TextID','Java Applet');");
doc=(Member("document"); //引用文档 //访问 HTML 文档对象
f orm=(Member("textForm"); textField=(JSObject)Member("textField"); text=(String) Member("value"); //获取文本值 //调用 JavaScript 的 alert()方法
win.eval("alert(\"This alert comes f rom Java Applet !\")");
<!--HTML 代码片段-->
<html><head><script>
f unction setvalue(id,vV alue){ //改变 HTML 中的文本值
<applet code="script.class" name="readApp" MA YSCRIPT> </applet><!--必须使用 MA YSCRIPT 属性标志-->
<f orm name="textForm">Text comes f rom: <input type="text" size="20" id="TextID">
</f orm></body></html>
表 1 JSObject 类的方法和描述 方
法
描
述
调用 Javascript 函数 调用 Javascript 语句 获得命名对象 获得索引对象
获得 JavaApplet 的包含窗口 删除命名对象
call(String f unctionName,JsObject args[]) eval(String expression)
getMember(String elementName) getSlot(int index) getWindow(Applet applet)
removeMember(String elementName)
1.3.2 从 JavaScript 中访问 Java Applet 的方法和变量
通过 JavaScript 提供的 applet 对象,JavaScript 代码可以
访问 Java 的变量和方法,需要注意的是,JavaScript 提供的 applet 对象具有 name 属性,而没有方法和事件处理器,具 体步骤如下:
(1)将要访问的 Java Applet 小程序的方法和变量声明
为 Public ,且必须在 Public 类中声明;
(2)Java Applet 小程序要先装入才能访问,尽管 applet 对象没有定义 onLoad 事件,但可以在 HTML 文档的<body> 标志中,指定使用 Window 对象的 onLoad 事件处理器;
(3)Java Applet 小程序可以用 JavaScript 的 applet 对象 来访问。以“1.1”中的 Java Applet 程序为例,可以使用 “adApp.DoAdd()”语句来访问 Applet
setMember(String elementName,Object V alue) 设置命名对象的值
设置索引对象的值 返回 JSObject 的字符串版本
setSlot(int index,Object value)
toString() 实现从 Java Applet 到 HTML 页面 JavaScipt 通信的具体 步骤如下:
(1)在 HTML 中使用<applet>标志的 MAYSCRIPT 属 性,以允许 Java Applet 小程序访问脚本;
(2)将 netscape. javascript 包导入 Java Applet ;
小程序中定义的DoAdd()方法。
1.4 基于MySQL 数据源的VR 动态场景构建
JDBC 是一种用于执行SQL 语句的Java API,它由一组用Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序,用Java 和JDBC API 可以发布含有Applet 的网页,而该Applet 使用的信息可能来自远程数据库。JDBC API 支持数据库访问的客户机/服务器配置模型,Java Applet 或应用程序将直接与数据库进行对话,这将需要一个JDBC 驱动程序来与所访问的特定数据库管理系统进行通讯。用户的SQL 语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。
MySQL 是一个多用户、多线程的SQL 数据库,是一个客户机/ 服务器结构的应用,它由一个服务器守护
程序mysqld 和很多不同的客户程序和库组成。MySQL 数据库服务器是目前市场上操作最简洁、运行最快的SQL 数据库之一,由瑞典的T.c.X. DataKonsultAB 公司开发。MySQL 服务器安装程序可以从sql/网站下载,它提供了其它数据库少有的编程工具,而且MySQL 对于商业和个人用户是免费的。其功能特点如下:
(1)可以同时处理几乎不限数量的用户;
(2)处理多达50,000,000 以上的记录;
(3)命令执行速度快,也许是现今最快的;
(4)简单有效的用户特权系统。
MySQL Connector/J 是JDBC API 针对M ySQL 数据库服务器的驱动程序,它以Jar 压缩文档形式发布,内含源代码和类文件。需要将压缩包中的“mysql-connector-j-#-bin.jar”拷贝到Java 编译环境的classpath 中,其中的“#”代表驱动程序版本号。以下Java 代码片段给出了利用MySQL Connector/J 驱动程序进行MySQL 数据库连接的过程:
import java.sql.*; … …
public class ConnectMySQLDB extends Applet
{ String driver="sql.Driver";
//MySQL 数据库服务器地址
String url="jdbc:mysql://192.168.0.1:3306/DBName";
String user="root"; //数据库操作用户名
String password=null; //数据库用户密码
Connection con=null; Statement smt=null;
ResultSet rs=null; String Ttext=null;
public void OpenDB() {
try {//建立数据库连接并执行SQL 查询语句
Connection(url,user,password);
ateStatement();
uteQuery("select * f rom TableName");
<(); Date("FieldName"); //获得字段值
}catch(j ava.sql.SQLException SE)
{ System.out.println("Open Database
Error!"); SE.printStackT race();} } … … }
MySQL 数据库中存储有VRML 场景物体的几何参数数据和属性数据,Java Applet 可以根据用户需要随时利用JDBC 与MySQL 远程数据库建立连接,获取物体的几何数据,然后利用EAI 的creatV rmlFromString()方法将物体以IndexedFaceSet 节点形式写入VRML 场景,以实现VR 动态场景的构建,图2 给出了详细的流程图。
图2 VR 动态场景构建流程图
2 应用实例
根据以上技术路线,我们结合水电工程大坝混凝土浇筑施工的特点开发了基于VRML 及blaxxun Contact
虚拟现实浏览器的分布式可视化三维信息系统。系统依据大坝浇筑的分仓分块信息以及浇筑进度计划,建立大坝各混凝土浇筑块三维模型,然后提取三维模型几何信息存储到MySQL 数据库,作为动态施工场景构建的数据源。该系统的界面设计基于HTML 和Internet Explore 浏览器,系统具有较好的交互性和生动的三维动画效果,能够实时地显示不同施工进程的三维场景,工程决策者和施工管理者可以在远离施工现场的区域通过互联网随时查询施工现场任意时刻的施工形象,也可以动态模拟某一时间区段的大坝浇筑形象,并且随时获得此时混凝土浇筑强度、累计浇筑方量、最大浇筑高程、最低浇筑高程及水位等工程施工信息,图3 为分布式可视化三维信息系统的用户界面。
图3 分布式可视化三维信息系统应用实例
3 需要注意的几点问题
虚拟现实动态场景构建涉及多个技术及软件的相互结
(下转第2300 页)Vertexes、faces
V ol. 17 No. 9
Sept. 2005
• 2300 • 系 统 仿 真 学 报
[J]. 系统仿真学报, 2000,12(4):688-691.
曾建超,俞志和等。虚拟现实技术及其应用[M]. 北京:清华大学 出版社,1996.
孙家广等. 计算机图形学(第三版)[M]. 北京:清华大学出版社,
1998.
汪加和,宋子善等. 虚拟现实中基于图像的三维空间漫游方法[J]. 光学技术,2000,26(2):157. 郭齐胜,谢薇,张小超. 战场视景实时仿真技术[J]. 系统仿真学报, 2001,13(增刊):267-270. The MultiGen Creator Terrain Guide[Z]. V ersion 2.5.1 U .S.A: MultiGen-Paradigm.Inc,2002.
The MultiGen Creator Modeling Guide[Z]. V ersion 2.5.1.U.S.A: MultiGen-Paradigm.Inc,2002.
可以使 LADBM 技术应用于大面积地形。
[2]
4 结论
本系统基于虚拟现实技术开发,通过三维建模软件 Creator 和仿真开发软件 V ega 实时仿真整个战场飞行视景环 境,有良好的实时性和沉浸性。系统虽然实现了对各种复杂 条件下飞行实景的仿真模拟,完成了与用户之间的实时交 互,但仍还存在若干技术问题如场景模型的真实度、模型之 间的融合、人机交互设计、特殊效果仿真等有待研究和改进。
参考文献:
[1]
庞国峰, 赵沁平. 基于真实地形数据的虚拟直升机低空飞行仿真
[3] [4] [5] [6] [7]
(上接第 2290
页) 合,由于各技术及软件的自身特点以及版本更新,在按照以 上技术路线进行开发过程中需要注意
以下几个方面的问题: (1)正确选取用于解释执行 Applet 的 Java 虚拟机。由 于 Sun 公司和 Microsoft 公司的一贯分歧,致使 Microsoft 公司决定从 IE6.0 开始不再支持 Sun Java 虚拟机。运行在 Microsoft JV M 的 Applet 共享通用数据结构,存在跨域未授 权通信漏洞,建议使用 Microsoft JV M 5.0.3810.0 以上版本。
(2)正确选取 Java 编译器 JDK 版本。由于 Microsoft Java 虚拟机只支持 Java 1.1.4 版本,因此应选用 JDK 1.1.4。 这样 Applet 里只能用 AWT 图形用户接口,而不能使用新的 Swing 图形用户接口,这正是笔者使用 HTML 进行界面设计 的根本原因。
(3)选取合适的 MySQL Connector/J 驱动程序。由上 面选择的 JDK 与 Java 虚拟机决定 Connector/J 的版本不能过 高,笔者使用的驱动程序的版本号为 2.0.14,对应的类文件 压缩包为“mysql-connector-j-2.0.14-bin.jar ”。
(4)选取合适的 VRML 浏览器。目前 VRML 浏览器 中使用较多的有 ParallelGraphics 公司的 Contona 和 blaxxun 公司的 Contact ,由于 Contona 在中文支持方面存在缺陷, 建议选用 Contact ,其三维图形显示性能最佳,对 EAI 的功 能进行的进一步扩充,它的新版本 BS Contact 已发布,功能 非常强大。
用于工程施工过程模拟、三维地理信息系统、虚拟装配技术 等研究领域。
参考文献:
[1] ISO/IEC 14772-1:1997, The V irtual Reality Modeling Language International Standard Part 1 [S].
ISO/IEC 14772-2:2002, The V irtual Reality Modeling Language International Standard Part 2: EAI [S].
ISO/IEC FDIS (Final Draf t International Standard) 19775:200x, X3D framework & SAI [S].
ISO/IEC FCD (Final Committee Draf t) 19777:200x, X3D language bindings [S].
Broll W. Distributed V irtual Reality f or Everyone -- a Framework f or Networked VR on the Internet[C]. In Proceedings of the IEEE V irtual Reality Annual International Symposium 1997 (VRAIS'97), (March 1-5, Albuquerque, NM), IEEE Computer Society Press, Las Alamitos, CA, March 1997,121-128.
汪兴谦, 牛燕明, 邓谆谆. VRML 与 Java 编程实例讲解[M]. 北京:
中国水利水电出版社, 2002.
王汝传, 姚旭敏, 等. 基于 Java 和 VRML 虚拟场景通信方式的研 究[J]. 系统仿真学报, 2003, 15(7): 986-990.
张飞, 姜进磊, 李庆虎. 利用 MySQL 构建分布式应用[J]. 计算机 工程与应用, 2001, 18: 102-104.
Ames Andrea L, Nadeau David R, Moreland John L. VRML 资源手 册[M]. 宗志方, 季晖, 谭江天等译. 北京: 电子工业出版社, 1998.
何梅. Java Applet 编程实例[M]. 北京: 清华大学出版社, 2003.
Stephen Potts. Java 2 技术内幕[M]. 马朝晖等译. 北京: 机械工业 出版社, 2003.
李荣贵, 等. JA V A 2.0 网络/多线程编程实例教程[M]. 北京: 北京
希望电子出版社, 2001.
肖刚, 等. Java GUI 程序设计[M]. 北京: 清华大学出版社, 1998. 孟
永东, 田斌, 刘德富. 基于 Web3D 技术的水利水电工程施工可 视化仿真应用研究[J]. 水力发电, 2004,7. Meng Yongdong, Tian Bin, Cai Yizhou. Application of Distributed V isual Simulation in Hydropower Engineering Construction [C]. 4th
International Conference on DAM ENGINEERING, 2004,10. Ong, S.K .; Mannan, M.A. A VRML-Java-
based approach to teaching APT programming [J]. International Journal of Mechanical Engineering Education, 2001,4:345-360.
[2] [3] [4] [5]
[6]
[7]
[8] [9] [10] [11] [12] 4 结论
VRML 与其它实现三维场景的技术手段(如 OpenGL ) 相比,具有语法简单、三维建模功能强大、便于网上发布等 优点。但由于 VRML 本身仅仅是一种标准,不可能满足各 行各业的所有需要。所以,高级交互功能的实现必须借助于 Java 等功能强大的高级语言。这样,可以有效地弥补 VRML 本身的一些不足。本文利用 EAI 和 JDBC 实现了 Java Applet 与 VRML 、MySQL 之间的相互通信,进而实现 VRML 场景 物体的添加、删除,即虚拟现实场景的动态构建。该方法可
[13]
[14] [15]
[16]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论