论文部分内容阅读
摘要 VRML是开发虚拟实验的主流语言。介绍如何利用Java与VRML的结合,实现数据通信功能,实现黑板板书的虚拟实验。
关键词 VRML;Java;板书;虚拟实验
中图分类号 G434 文献标识码 B 文章编号 1671-489X(2008)12-0077-02
1 前言
随着计算机技术的迅速发展,虚拟现实技术已很成熟,广泛应用于各行各业。虚拟现实技术凭借其强大的交互功能,在教育领域中应用也很广泛。虚拟现实技术在教育中的应用之一就是开发虚拟实验。VRML是开发虚拟实验的主流语言,能够构建逼真的实验环境。将VRML与Java相结合,通过EAI接口实现VRML场景与网页中各个嵌入式对象之间互相方便地通信,使VRML场景成为网络表现的一部分[1]。同时,也使用户能够动态地改变VRML场景。
黑板是教学中最常用的教具之一,也是在虚拟实验中虚拟教室的一个重要组成部分。笔者主要探讨黑板板书功能的设计以及实现方法。
2 黑板板书实验的设计
2.1 实验环境的设计实验的环境比较简单,就是一间教室,里面包括黑板、桌椅、灯、多媒体柜等。为了实现黑板的板书功能,这里只需做一个黑板就可以。制作的方法主要有2种:一是用3DMAX制作完后,再转化成VRML格式的文件,以便在VRML环境中对各种交互进行编程;二是直接用VRML语言来编写。2种方法各有长处。用3DMAX制作的实验器材比较精细、逼真,但在转换成VRML格式的时候会有一些小错误,需要人工修改;直接用VRML编写,做出来的器材的逼真度不如3DMAX,但编写起来方便。这里采用第2种方法。
2.2 交互功能的设计一般的交互功能都能通过JavaScript脚本来实现,但是如果VRML程序较大,运行起来就会影响速度。为了实现较好的交互功能,最好将VRML虚拟场景和交互的控制区分开,这就需要用到Java小程序Applet。
教学中一般的黑板板书功能就是能够在上面书写,能用各种颜色的粉笔,能写大小不等的字,还能用黑板擦擦掉。在这个虚拟实验中,这些功能都能实现。这就用到了EAI接口。在Applet小程序中设置字体的颜色、大小,将数据传递到VRML场景中,改变虚拟场景,就可以用设置好的颜色和大小来板书了。
2.3 网页布局的设计本实验的组成主要是虚拟场景和控制字体颜色大小的Applet小程序区。它们在屏幕上的分布设计如图1所示。
板书功能的实现关键是用createVRMLFromString()动态控制函数。由于板书是非常灵活的,所以写出来的字应该是圆滑的。挤压造型Extrusion节点可以来创建弯曲的管道,板书写的字和管道有相似之处。因此,可以用这个节点来实现具体的板书功能。
2)关键代码。
①VRML程序。JavaScript脚本部分代码:
function yanse(){ziyanse=mmm.diffuseColor ; } //获取字体颜色值
function zitidaxiao(){zidaxiao=daxiaobianhua.translation; } //获取字体大小值
function isActive (val) {
……
zideyanse=new SFColor(ziyanse.r,ziyanse.g,ziyanse.b); //给字体赋颜色值
scale=new SFVec2f(zidaxiao.x,zidaxiao.x); //给字体赋大小值
string=xian1 ’diffuseColor ’ zideyanse xian2 ’spine ’ spine ’ scale ’ scale xian3;
node=Browser.createVRMLFromString(string);//生成节点
……
}
function hitpoint(val){
weix=val[0]; weiy=val[1];weiz=val[2];……
spine[q]=new SFVec3f(weix,weiy,weiz);
}
②Java程序。Java程序主要实现程序的界面布局以及获取滚动条当前值。控制字体颜色、大小的滚动条的处理程序如下:
public boolean handleEvent(Event event){//控制字体大小的滚动条
if (event.id == Event. SCROLL_LINE_UP
关键词 VRML;Java;板书;虚拟实验
中图分类号 G434 文献标识码 B 文章编号 1671-489X(2008)12-0077-02
1 前言
随着计算机技术的迅速发展,虚拟现实技术已很成熟,广泛应用于各行各业。虚拟现实技术凭借其强大的交互功能,在教育领域中应用也很广泛。虚拟现实技术在教育中的应用之一就是开发虚拟实验。VRML是开发虚拟实验的主流语言,能够构建逼真的实验环境。将VRML与Java相结合,通过EAI接口实现VRML场景与网页中各个嵌入式对象之间互相方便地通信,使VRML场景成为网络表现的一部分[1]。同时,也使用户能够动态地改变VRML场景。
黑板是教学中最常用的教具之一,也是在虚拟实验中虚拟教室的一个重要组成部分。笔者主要探讨黑板板书功能的设计以及实现方法。
2 黑板板书实验的设计
2.1 实验环境的设计实验的环境比较简单,就是一间教室,里面包括黑板、桌椅、灯、多媒体柜等。为了实现黑板的板书功能,这里只需做一个黑板就可以。制作的方法主要有2种:一是用3DMAX制作完后,再转化成VRML格式的文件,以便在VRML环境中对各种交互进行编程;二是直接用VRML语言来编写。2种方法各有长处。用3DMAX制作的实验器材比较精细、逼真,但在转换成VRML格式的时候会有一些小错误,需要人工修改;直接用VRML编写,做出来的器材的逼真度不如3DMAX,但编写起来方便。这里采用第2种方法。
2.2 交互功能的设计一般的交互功能都能通过JavaScript脚本来实现,但是如果VRML程序较大,运行起来就会影响速度。为了实现较好的交互功能,最好将VRML虚拟场景和交互的控制区分开,这就需要用到Java小程序Applet。
教学中一般的黑板板书功能就是能够在上面书写,能用各种颜色的粉笔,能写大小不等的字,还能用黑板擦擦掉。在这个虚拟实验中,这些功能都能实现。这就用到了EAI接口。在Applet小程序中设置字体的颜色、大小,将数据传递到VRML场景中,改变虚拟场景,就可以用设置好的颜色和大小来板书了。
2.3 网页布局的设计本实验的组成主要是虚拟场景和控制字体颜色大小的Applet小程序区。它们在屏幕上的分布设计如图1所示。
板书功能的实现关键是用createVRMLFromString()动态控制函数。由于板书是非常灵活的,所以写出来的字应该是圆滑的。挤压造型Extrusion节点可以来创建弯曲的管道,板书写的字和管道有相似之处。因此,可以用这个节点来实现具体的板书功能。
2)关键代码。
①VRML程序。JavaScript脚本部分代码:
function yanse(){ziyanse=mmm.diffuseColor ; } //获取字体颜色值
function zitidaxiao(){zidaxiao=daxiaobianhua.translation; } //获取字体大小值
function isActive (val) {
……
zideyanse=new SFColor(ziyanse.r,ziyanse.g,ziyanse.b); //给字体赋颜色值
scale=new SFVec2f(zidaxiao.x,zidaxiao.x); //给字体赋大小值
string=xian1 ’diffuseColor ’ zideyanse xian2 ’spine ’ spine ’ scale ’ scale xian3;
node=Browser.createVRMLFromString(string);//生成节点
……
}
function hitpoint(val){
weix=val[0]; weiy=val[1];weiz=val[2];……
spine[q]=new SFVec3f(weix,weiy,weiz);
}
②Java程序。Java程序主要实现程序的界面布局以及获取滚动条当前值。控制字体颜色、大小的滚动条的处理程序如下:
public boolean handleEvent(Event event){//控制字体大小的滚动条
if (event.id == Event. SCROLL_LINE_UP