自助式多媒体仿真系统的开发

2015-01-02 12:10赵大田
中国科技信息 2015年4期
关键词:控件圆锥小球

赵大田 宗 波

使用Delphi+GLScene,开发出三维场景的多媒体教学辅助软件。使用该软件,教师可以根据自己的需要,方便的设定要显示的三维场景的内容以及运动规律,并在课堂上动态演示出该场景。

随着信息技术的发展,多媒体在高校物理教学中发挥着越来越大的作用。在课堂上,为了帮助学生理解物体的运动规律和复杂的场景,需要开发出多媒体教学软件,将其形象的描述出来。对于大多数教师而言,自行开发出符合自己需要的课件是很难的,在网上虽然可以找到大量的资源,但很难找到正好符合自己需要的课件。因此,笔者使用开发工具Delphi+OpenGL 开发出一种用于展示自定义多媒体场景的软件,教师不需要掌握任何计算机开发技术,只需输入要显示的物体的类型、参数和运动规律,即可在屏幕上准确、形象的显示出教师所想要表现的物理场景。

开发工具和开发原理简介

Delphi是Borland公司开发的可视化软件开发工具,为我们提供了一种方便、快捷的Windows 应用程序开发工具。拥有简洁高效的语言,功能强大的控件库,直观的开发环境,可以用很少的代码实现很强大的功能。Delphi程序员们开发出了成千上万的第三方控件,大幅度扩展了Delphi 的功能。

OpenGL 是行业领域中最为广泛使用的 2D/3D 图形接口函数库,它使用简便,效率高,可以对二维/三维物体进行建模、变换、颜色设置、光照和材质设置、纹理映射等功能,方便的在屏幕上显示出各种二维/三维物体的形象。开发者可以使用多种开发工具直接调用OpenGL 的功能,但开发难度较大,Delphi 开发者可以使用GLScene 控件库来解决问题,它将OpenGL 的功能封装成一个个简单易用的组件,你只需要掌握这些基类的简单操作,就可以迅速地进行程序开发。

大学物理教学中的各种场景,其实绝大部分都是一些常见的物体(或几何形状),其位置随时间不断变化的过程。对于一个教师而言,知道自己所要设置的物理场景中各个物体的运动规律,但无法将其在计算机上表现出来。笔者可以利用Delphi+OpenGl 的功能,开发出多个多媒体软件,在屏幕上显示出各种不同的物理场景。但这些显示特定场景的多媒体软件无法满足广大教师的教学需求。

因此,笔者开发出的这个软件,并不是用来显示某种特定场景的,而是由教师先定制出符合自己要求的场景,并将其具体信息(物体种类、大小、位置函数)输入到程序中。该软件则根据这些信息生成相应的图像,并不断刷新,形成运动场景。

开发实例:生成场景文件

下面以生成一个圆锥摆运动场景为例来分析介绍该软件的功能。首先,要输入圆锥摆运动场景的相关信息,保存为场景文件。其功能界面如图1 所示,你可以生成一个全新的场景文件,也可以读取一个已有的场景文件后往里面增加新物体。可选的物体暂时包括:球体、立方体、圆锥、圆柱体、圆盘、直线、平面、圆环、文字。以后还会增加。

一个圆锥摆运动场景由顶、线和小球三个物体组成。其中,线和小球的位置参数是随时间变化的。

首先输入顶部的信息:其颜色选择黄色;中心坐标为x=0,y=0,z=3;长度为1,宽度为1,绕xyz 轴转动的角度均为0,绕y 轴旋转180 度。

然后输入线的信息:颜色为绿色;线宽度为2 个像素;起点坐标为0,0,3;终点坐标为0.8*cos(2*t),0.8*sin(2*t),0。

最后输入小球的信息:颜色为蓝色,中心坐标为x=0.8*cos(2*t),y=0.8*sin(2*t),z=0;小球半径为0.2。

可以看出,线和小球的位置参数中包含了其位置随时间变化的规律。

每个物体都有起止时间两个参数,设置物体显示的时间范围。超出时间范围,物体将不显示。这是针对一些物体的运动规律发生变化的情况而设置的,比如一个小球在t=2.3s 时与其他物体发生碰撞,运动规律发生变化,这时可以加入两个小球,其中一个小球的运动起止时间为0~2.3s,另一个小球的起止时间为2.3~20s,这样就可以显示出一个小球碰撞的场景。

信息输入完成后,将其保存为一文本文件,文件名为“圆锥摆.txt”。每一行包含了一个物体的类型和各种相关参数,用分号作为分隔符,内容如下所示:

平 面;0 ;1000;65535;0;0;3;1;1;0;180;0

直 线;0 ;1000;32768;2;0;0;3;0.8*cos(2*t);0.8*sin(2*t);0

球;0;1000;1 6 7 1 1 6 8 0 ;0.8*cos(2*t);0.8*sin(2*t);0;0.2。

图1 场景设置界面

显示动态场景

教师在课前做好圆锥摆的场景文件,在课堂上就可以使用软件来展示该场景。首先选择场景文件,程序会分析每一行的信息,将其分解为若干个小字符串。其中第一个字符串是物体的种类,解析后动态生成相应的类实例,后面的字符串则包含了物体的各个参数的信息,有些参数的值是常量,使用strtofloat 函数可将其转化为数值,有些参数是时间的表达式,需要每次重绘图像时用控件TcalcExpress 来解析参数,获得数值。这些数值都保存在Parameters 数组中。部分代码如下所示:

载入场景文件并解析后,点击“开始”按钮,程序开始不断的计算运动参数,重绘图像,在屏幕上显示出物体运动的效果。如图2 所示。

部分代码如下:

图2 动态场景展示效果

可以看出,绘制一个物体所需的代码很少而且很简单,基本上只要写入几个参数,就可以在屏幕上绘制出相应的三维图像。

结语

使用该软件,广大物理教师可以根据自己的需要,方便的设计出各种三维动态的物理场景,并用多媒体展现出来,使学生能够直观的理解物理规律和现象,提高教学效果。

猜你喜欢
控件圆锥小球
圆锥摆模型的探究与拓展
圆锥截线与玫瑰线
“圆柱与圆锥”复习指导
计算法在圆锥保持架收缩模组合冲头设计中的应用
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于.net的用户定义验证控件的应用分析
小球进洞了
小球别跑
小球别跑
关于.net控件数组的探讨