当前位置: 首页 > 范文大全 > 公文范文 >

基于Flash3D的中学化学虚拟实验平台的设计与实现

时间:2022-03-15 08:43:04  浏览次数:

[摘 要] 用Flash3D技术开发三维虚拟实验平台具有技术难度适中、功能易于扩展、浏览器插件安装方便且使用普遍等优点,但是已有的三维虚拟实验平台较少采用Flash3D技术。文章首先从系统架构、数据库设计、虚拟实验过程设计等方面详细论述了基于Flash3D技术的中学化学虚拟实验平台的设计方案,然后阐述了该平台的功能,接着从三维虚拟实验场景中的交互、化学实验现象的模拟、数据通信等方面提出了该平台的实现方法。最后介绍了中学化学虚拟实验平台的特色。

[关键词] 中学化学虚拟实验平台; Flash3D; 设计与实现; Papervision3D; Flint粒子系统

[中图分类号] G434 [文献标志码] A

[作者简介] 张学军(1968—),男,甘肃会宁人。教授,博士,主要从事数字化教育资源设计与开发、虚拟现实技术与教育研究。

一、引 言

化学作为一门以实验为基础的学科,它通过实验教学可以使学生获得生动的感性知识,从而更好地理解、巩固所学的化学知识。同时,实验更是培养和发展学生思维能力和创新能力的重要方法和手段。近几年来随着新课程改革的不断深入,中学化学实验教学改革取得了一定的进展,但是实验教学中仍存在实验设备不足、实验室开放时间少、实验内容的深度和广度不够、大多数教学实验属于验证性实验等问题。针对这些问题,许多学校采取了改善实验教学条件,改进实验教学方法等措施,一些学校还逐步在实验教学环节中引入虚拟实验。充分利用具有开放性、仿真性、经济性、可重复使用性、共享性等独特优点的虚拟实验进行教学,可以有效弥补现实实验教学的不足。[1]目前已经开发的三维虚拟实验平台大多基于VRML、Virtools、VRP等技术,[2][3][4][5][6][7]使用Flash3D技术的则较少。[8]这几种典型的三维虚拟实验开发技术都有各自的优点和不足,其技术比较见表1。

使用VRML开发虚拟实验技术虽然是免费、开源的,但其开发难度高,周期长;使用Virtools开发虚拟实验技术难度较高,侧重于单机版,网络版功能受限制;使用VRP开发虚拟实验技术难度较低。其中Virtools和VRP用于商业均需要付费,VRML、Virtools和VRP应用于网络环境时其浏览器插件都不普及,且功能扩展时难度高。使用Flash3D开发虚拟实验技术难度适中,功能易于扩展,便于连接后台数据库形成集实验教学、实验操作、实验报告和实验评价于一体的综合性的实验平台。Flash3D技术是近年迅速发展起来的一种在线3D技术,它用ActionScript在Flash二维的世界里表现三维对象。其主要优势在于:(1)Flash播放器已相当地普及,根据调查显示,约98.7%以上的PC上都有安装;(2)Flash技术背后有Adobe公司的强力支撑,Adobe提出的RIA技术架构已成为当今Web发展与应用的一个热点。目前Flash3D的主要引擎有Papervision3D、Away3D、Sandy3D、Alternativa3D等。其中Papervision3D(以下简称PV3D)由巴西人Carlos开发出来,目的在于实现更加炫丽美观、功能强大的Flash3D Web应用程序。PV3D以其开源、支持ActionScript3.0(以下简称AS3)、API文档齐全、性能优越受到好评。为开发方便,本文在平台设计开发中选择Flash3D引擎中免费、开源的PV3D来使用。

二、 VCE平台设计

(一)系统架构

中学化学虚拟实验平台VCE(Virtual Chemical Experiment,以下简称VCE平台)采用Web/Brower模式,客户端采用浏览器来完成实验操作及实验报告填写、批改、查询等功能。开发三维虚拟实验时,使用FlashCS5,脚本语言采用AS3。由于FlashCS5基本上是二维的,所以三维实验场景在3DSMAX创建完成后需要通过DAE插件导出,导出后的DAE文件还需要在FlashCS5中安装三维引擎PV3D才能支持。服务器端采用Web Server IIS 6.0+ASP程序。客户端中包含的功能在服务器端有对应的处理程序,如客户端中的“实验操作”功能在服务器端有“实验操作Asp程序”来作相应的处理。数据库采用Access或Microsoft SQL Server 2000。VCE平台系统架构如图1所示。

图1 VCE平台系统架构

(二)数据库设计

VCE平台数据库由五部分组成:用户管理及界面、虚拟实验及实验报告、作业布置及批改、在线考试、在线论坛。其中用户管理及界面包括六个数据库表,其中管理员表、教师表及学生表分别存储不同身份人员的信息,班级表存储学生班级数据,教师菜单表和学生菜单表分别存储教师和学生进入系统后的界面显示控制信息。虚拟实验及实验报告包括很多表,每个具体的中学化学虚拟实验由两个表组成,如 “一氧化碳还原氧化铜”虚拟实验由一氧化碳还原氧化铜虚拟实验表和一氧化碳还原氧化铜实验报告表组成,前者主要存储学生做虚拟实验的过程记录,后者则存储学生完成的实验报告。需要说明的是虚拟实验表中的部分字段要传递数据给实验报告表,以服务于实验报告的填写。作业布置及批改由作业布置表和作业批改表组成,前者完成实验作业的具体布置任务,后者则记录学生所完成的实验作业及教师对作业的批改信息。在线考试由单选题表、多选题表、填空题表、问答题表和阅卷表组成,前四个表存储不同类型的考试试题及参考答案,阅卷表则存储对学生在线考试的批阅信息。在线论坛由论坛主题分类表、发言帖子表、用户积分表等多个表组成,论坛主题分类表主要存储虚拟实验的主题分类信息,一般来说一个虚拟实验项目作为一个主题分类。发言帖子表存储用户发帖、回帖的数据,用户积分表则主要存储用户因为发帖、回帖而产生的积分信息。数据库各大部分及每一部分之间的内部结构关系如图2所示。

图2 VCE平台数据库内部结构关系

(三)虚拟实验过程设计

VCE平台共设计了10多个不同的中学化学虚拟实验,每个虚拟实验的过程设计类似。下面以“一氧化碳还原氧化铜”实验为例来说明。 “一氧化碳还原氧化铜”实验在过程上主要是从以下六个方面进行设计的:(1)选择实验仪器药品;(2)取装药品;(3)组装仪器;(4)按正确顺序操作实验;(5)观察并记录实验现象;(6)停止通一氧化碳,熄灭酒精灯并拆卸仪器。为了让学生能够熟练地掌握本实验用到的仪器药品,设计了“选择实验仪器药品”这一环节,同时为了降低选择的难度,使学生有足够的信心去做,为学生提供了三次选择的机会,同时给出了相应的提示,缩小选择范围,如“除了铁架台、试管、木块、酒精灯、导管以外,还需要以下哪三种实验仪器?你有三次选择机会”,学习者在操作过程中选对或选择次数达到三次将出现进入下一步的按钮,单击进入下一步。在分值的计算上,采用了依次递减计分的方法,即第一次全选对计为满分(此部分分数占操作过程总分的30%),第二次选对则为总分的30%×90%,第三次选对为总分的30%×80%,否则计为0分。这些得分直接记录在虚拟实验表中,然后系统从虚拟实验表中调取该部分得分到实验报告中。为了培养学生的化学实验动手能力,在组装化学仪器的过程中不但设置了组装正确或错误的反馈,并且给出了时间限制,若在规定时间内仍未完成仪器组装,则实验自动跳转到下一步继续运行。为了加深学生对实验过程中一些关键知识点的记忆以及加强虚拟实验的真实性,在实验操作过程中设计了对重要知识点的考核,如在通入一氧化碳的环节(这个环节是实验的重点环节,包含的知识点为考点)中,正确的操作应该是先通入一氧化碳,再点燃最右边的酒精灯,最后点燃铁架台上的酒精灯。但在实际操作过程中并不是所有学习者都可以一次性按正确的步骤进行操作,所以在虚拟实验操作过程中对错误的操作引起的后果给与提示和形象的直观表现,在加深学生印象的同时提高了虚拟实验的真实性。比如学习者在操作过程中,先点燃了铁架台上的酒精灯,后通入一氧化碳,则显示试管爆炸破裂的现象,并提示重做。因为双孔试管加热会导致右边试管中的澄清石灰水回流,造成试管炸裂。在操作虚拟实验的过程中,为了培养学生的观察能力和语言表达能力,设计了一些文本输入框,供学生填写观察到的实验现象、实验中存在的问题等。如在“观察并记录实验现象”环节中,设计了“你观察到的实验现象是: ”这一输入文本框,并且根据学生输入的内容,系统会给出相应的反馈。

三、 VCE平台功能

VCE平台由三大功能模块组成:管理系统、虚拟实验系统和实验评价系统,如图3所示。

图3 VCE平台功能模块

(一)管理系统

管理系统包括用户管理和实验资源管理。用户管理系统主要用于存储、管理和维护用户信息,系统有三类主要用户:教师、学生和管理员,不同的用户有不同的权限和职责。实验资源管理主要是对实验资源进行更新维护,包括添加删除实验、课程实验管理和实验仪器的管理。

(二)虚拟实验系统

虚拟实验系统包括各类具体实验、实验教学资料、实验仪器和开放性实验。根据实验教学要求,利用虚拟现实技术构建各种虚拟仪器和物品,让用户在网上进行实验。实验教学资料提供实验相关的知识,如实验目的、实验原理、实验内容、仪器药品、实验说明等;开放性实验是为开发学生的创新思维和想象能力而设计的,学生可以根据兴趣、实验仪器的功能实现各种设计性实验。如“一氧化碳还原氧化铜”虚拟实验,如图4所示。在虚拟实验中主要有基于鼠标的操作交互和基于键盘的操作交互。图4中所反映的是基于键盘的操作交互中的文本输入型操作交互,输入观察到的实验现象“试管口有气泡产生,澄清石灰水变浑浊,黑色的氧化铜粉末变为红色”,通过计算机存入到“一氧化碳还原氧化铜”对应的虚拟实验表中以便在实验报告中调用。

每个虚拟实验项目具体的开发步骤为:分析实验并依照实验指导先作好教学设计,然后结合2D和3D软件工具进行Web页面的整体布局设计。场景以及主体对象模型、材质及运动设计在3DSMAX中完成后,利用导出插件导成PV3D可以识别的DAE格式,在FlashCS5中使用AS3脚本语言通过PV3D引擎设置交互事件。最后将FlashCS5的内容集成到同一Web页面内,实现FlashCS5对实验场景及内容的直接控制。虚拟实验真正实现了建模的真实性、场景的沉浸感与实验交互性的全面结合,进一步提高了虚拟实验设计开发的科学性和实用性。

图4 “一氧化碳还原氧化铜”虚拟实验

(三)实验评价系统

实验评价系统包括实验报告系统、作业系统、在线考试、在线论坛。实验评价数据从后台数据库获取。教师依据评级标准对学生的实验过程进行评价,给出反馈意见。

学生使用实验报告系统预习实验后向教师提交预习报告,实验完毕后提交实验报告;教师使用该模块查看学生预习实验报告和实验报告,并给实验报告评分。“一氧化碳还原氧化铜”实验报告如图5所示,实验报告成绩的评定由两部分组成,实验中客观部分(仪器药品选择、仪器组装等)的考查内容由计算机自动评分,实验中主观部分的考查内容由教师评定,计算机最终根据一定比例给出综合后的成绩,同时教师写出实验报告评语。

图5 “一氧化碳还原氧化铜”实验报告

作业系统包括教师布置实验作业、学生提交实验作业、教师批改实验作业以及学生查看实验作业成绩等功能。教师布置实验作业和批改实验作业如图6所示。

图6 教师布置实验作业和批改实验作业

在线考试包括管理员录入试题、学生在线考试(计算机自动从题库抽题;试题配图;有选择题、填空题等客观题,也有问答题等主观题)、教师阅卷(只阅主观题,客观题计算机自动阅卷)、学生查看成绩等功能。

在线论坛主要用于实现各类用户之间的学习交流,教师通过查看学生发言帖子、统计学生积分对学生作出相应评价。

四、 VCE平台实现

VCE平台的实现包括三维场景的创建、三维虚拟实验场景中的交互、化学实验现象的模拟、数据通信等多个方面。下面主要从三维虚拟实验场景中的交互、化学实验现象的模拟、数据通信三个方面介绍。

(一)三维虚拟实验场景中的交互

图7 虚拟实验三维场景中的交互

3DSMAX建模生成中学化学三维模型,优化、贴图后通过导出插件导成PV3D中使用的中学化学三维模型DAE文件。PV3D中通过编程可实现三维模型的选择、旋转、缩放等交互功能(如图7所示)。但是由于在PV3D中利用二维模型拖放的startDrag和stopDrag函数并不能实现对三维模型的拖放,所以需要对PV3D进行二次开发以实现三维模型的拖放功能。

PV3D中实现三维模型拖放功能的核心代码如下:

var ray:Number3D = camera.unproject(viewport.containerSprite.mouseX,

viewport.containerSprite.mouseY);

ray = Number3D.add(ray, camera.position);

var cameraVertex3D:Vertex3D =new Vertex3D(camera.x, camera.y, camera.z);

var rayVertex3D:Vertex3D = new Vertex3D(ray.x, ray.y, ray.z);

var intersectPoint:Vertex3D = planeToDragOn.getIntersectionLine

(cameraVertex3D, rayVertex3D);

if(currentBody){ // currentBody为要拖放的三维模型变量

currentBody.x = intersectPoint.x;

currentBody.y = intersectPoint.y;

currentBody.z = intersectPoint.z;}

由于三维模型的空间坐标与二维模型的不同, PV3D中用于二维模型碰撞检测的hitTestObject函数对于不规则的化学三维模型一般不起作用,因此需要采用别的办法。一个较为可行的办法是引入JigLibFlash物理引擎实现碰撞检测功能。此方法笔者另外撰文论述,此处不再赘述。

(二)化学实验现象的模拟

VCE平台中的化学实验现象具有动态性、不规则性,它具有由产生、发展到消亡各个时期组成的生命周期,其中每个时期的图像形状、颜色、微粒的大小、多少等不一样,尤其是在三维虚拟实验中还要表现实验现象的空间感,对于这样的化学实验现象只有粒子系统才能模拟出来。粒子系统是由一种或多种微粒凝聚而成一种不规则形状的系统,其中微粒的大小、形状、颜色等属性和相应动作均可以设置。粒子系统的创设过程包括创建粒子发射器、创建渲染器、初始化粒子、使用动作等。Flint是一个基于AS3的开源的粒子系统类库,提供了很多预定义的粒子动作,并且提供了扩展的接口。笔者通过Flint粒子系统类库,动态模拟化学实验现象,实现了气泡、燃烧、药品微粒、爆炸等功能,其具体模拟算法如下:

步骤1:Import 导入Flint粒子库中的类;

步骤2:创建粒子发射器Emitter,属性设置为Emitter3D;

步骤3:用计数器Counter创建发射粒子的个数;

步骤4:初始化粒子Initializers位置、速度、图形和色彩;

步骤5:使用动作Actions,更新粒子的位置;

步骤6:创建渲染器Renderer,屏幕上绘制粒子;

步骤7:发射粒子Start。

虚拟实验中气泡、燃烧、药品微粒、爆炸等化学现象的模拟效果如图8所示。

图8 虚拟实验中化学实验现象的模拟

(三)数据通信

VCE平台中的数据通信主要指各部分之间相互传递信息。先在3DSMAX中建立中学化学物体三维模型,通过ColladaMax插件将模型导出为DAE文件,再将DAE文件利用PV3D代码导入到Flash CS5中进行编辑对三维模型实现交互,完成化学虚拟实验。最后生成虚拟实验swf文件嵌入到ASP应用程序中,通过代码实现与数据库互相传递信息,如图9所示。

图9 VCE平台的数据通信

其中“一氧化碳还原氧化铜”实验中虚拟实验给ASP应用程序传递信息的主要程序代码如下:

private function onclick(event:Event):void

{variables=new URLVariables();

myrequest=new URLRequest(“hyyht_3d_save.asp”);

loader1=new URLLoader();

variables.yqxz=n1;

variables.yqzz=n2;

myrequest.data=variables;

myrequest.method=URLRequestMethod.POST;

loader1.load(myrequest);

flash.net.navigateToURL(new URLRequest(“hyyht_3d_save.asp”),“_blank”);}

五、 VCE平台特色

1. VCE平台对中学化学虚拟实验场景、虚拟仪器、物品进行二维和三维混合建模, 建模手段体现综合性。传统的做法或者只进行三维建模,或者只进行二维建模。只进行三维建模存在情景逼真但速度太慢的缺点,只进行二维建模存在速度虽快但情景不逼真的缺点。为了既达到情景逼真的效果又满足速度快捷的要求,VCE平台采用二维和三维混合建模的方法,即有些采用二维建模,有些采用三维建模。

2. VCE平台中的虚拟实验在Flash3D环境中实现用户对虚拟仪器、物品的交互操作,实验操作强调交互性。

3. VCE平台中的虚拟实验详细记录用户的实验步骤和相关实验数据,以便为后面提交实验报告和对该用户的实验评价提供依据,实验过程具有记录性。目前以Flash技术为主的虚拟实验基本上是对实验进行动态模拟演示,无法记录用户的实验步骤和相关实验数据,因而这些虚拟实验都无法直接对用户的实验结果给出评价。一般的做法是在实验做完后通过调查问卷、访谈等间接手段来评价。VCE平台通过解决Flash3D和动态网页的数据通信问题以及动态网页和数据库的数据通信问题,从而实现详细记录用户的实验步骤和相关实验数据,以便为以后提交实验报告和对该用户的实验评价实现直接提供依据。

4. VCE平台是集实验教学、实验操作、实验报告和实验评价于一体,具有良好交互性、场景逼真、功能齐全、速度快捷、简单易用的中学化学网络综合虚拟实验教学平台,可实现从辅助教学、自主实验到实验报告的网上提交与批阅的全程操作与管理,满足网上实验教学的需要,在一定程度上解决了目前中学化学实验教学中存在的问题,具有较大的推广应用价值。

六、 总结与展望

笔者所在研究团队设计并开发了VCE平台。为了进一步改进与完善VCE平台,我们对VCE平台的教学应用进行了测试和应用效果研究。从对西北师范大学第二附属中学、兰州市第六十六中学两个班120名学生的问卷调查和对这两所中学七位化学教师的访谈结果来看,VCE平台应用的整体效果是不错的。当然,该平台仍存在一些不足,需要在使用中继续完善。

推荐访问: 实验 虚拟 中学化学 设计 平台
[基于Flash3D的中学化学虚拟实验平台的设计与实现]相关文章