Visual Basic模拟演示“波的叠加与干涉”
2011-01-25陈燕
陈燕
(苏州第十中学 江苏 苏州 215006)
1 引言
物理教学中,波的叠加与波的干涉很难用实物清晰地演示这种不断变化的动态过程,给学生学习带来了一定的障碍.为了提高波动教学中的实验效果,促进学生对波动过程的认识和理解,用计算机以Visual Basic 为编程工具,设计“波的叠加”教学辅助软件,模拟演示波的产生和传播,并突出显示在波动中的质点仍在原处做简谐振动以及两列波相遇后发生叠加情况与波的干涉实验.
2 主要算法及其特色
模块程序是生成即时曲线的核心部分,其中主要有两个程序片断,其中“画短线”片断主要功能为:将传入点的坐标(X2,Y2)与前一个点的坐标(X1,Y1)(在上一次传入时保存在其中)用Line函数画一短线,然后再保存该点坐标作为下一次的(X1,Y1).在该代码段中做了将绝对坐标转换成相对坐标的动作,将图线调整至适当的大小以适应图片框,具体算法如下:
w =obj.ScaleWidth
h =obj.ScaleHeight
X = (xx -range.MinX) / (range.MaxX - range.MinX) * w
Y = h - (value -range.MinY) / (range.MaxY - range.MinY) * h
“生成三条曲线”片断主要功能为由波的函数得到X,Y值(即点的坐标),再由该值调用“画短线”片断生成即时曲线.在该代码段中第一次画函数图线时,将1 000个点的函数值放到数组source(2,1 000)中,在以后画函数图线时只要用该数组中的值即可,无需再计算函数,加快程序运行速度.具体算法如下:
For i = 0 To 999
s =i / 100
source(0,i) = tA1.Text * Sin(-2 * PI *
iW1 / 10 * s + tF1.Text * PI / 180)
source(1,i) = tA2.Text * Sin(-2 * PI *
iW2 / 10 * s + tF2.Text * PI / 180)
……
Next i
打开时间开关后当波传播时只要依次调用source数组中的函数值(通过求模运算实现数组的循环)即可实现函数图线的移动,这里通过对用户输入的频率值加以限定(1~50间的整数)以保证三个波的图线在画图框内都为波长的整数倍,具体算法如下:
For i = 0 To 1000
s =i / 100
ir = (i - k) Mod 1000
If ir < 0 Then
ir = ir + 1000
End If′求向右传播的波的模
il = (i + k) Mod 1000′求向左传播的波的模
If opt1R = True Then
t0 = source(0,ir)
Else
t0 = source(0,il)
End If
If aa = 1 Then
DrawLine object, 0, t0, s, myrange, color0 画第一列波的图线
End If
……(以下为画第二列波和叠加波以及网络线的图线)
Next i
本系统的算法有普遍适用的三大特色.
(1)有个通用画图模块,可以根据需要画出任意函数图线,且函数图线是短线组成而不是点组成,避免图形变化剧烈时图线失真.
(2) 将1 000个点的函数值放到数组中,在以后画函数图线时只要用该数组中的值即可,无需再计算函数,加快程序运行速度.
(3)把输入的描述波动物理量的绝对值转化为与窗体大小相适应的相对值,以画出适宜观察的图线.
3 系统使用说明及其特点
如图1所示,进入主窗体后在输入两列波的初相位(φ)、频率(f)、振幅(A),选择传播方向后按“确定”按钮,这时出现三列波的图线,若打开时间开关,则演示波的传播过程.按网格按钮可选择是否添加网格.在波的传播过程中如果改变任一波的传播方向,系统会即时反映出来.
图1 主窗体
按复位按钮恢复初始状态;按退出按钮将退出程序.
按确定按钮后,为更加清楚的看清波形,可使用工具栏上的“第一列波”、“第二列波”、“叠加波”按钮来实现是否是三列波同时出现,还是仅出现想要显示的波.
为了更清楚地说明波在传播过程中质点只以其平衡位置为中心做简谐振动,不跟随波运动,可以用“显示质点”菜单突出显示波动中的某一质点,具体研究波动中质点的运动情况.
本软件在显示波传播过程时有两种显示方式,可用“显示方式”菜单来调节.两种方式如图2和图3所示.
图2 方式1 图3 方式2
方式1为动态显示模式,方式2为定格显示某一时间段内的波形变化情况.
利用本软件可以显示任意两列波叠加所产生的图线,如波包、波的干涉(驻波)等,如图4和图5所示.
图4 波包 图5 波的干涉
该教学辅助软件的特点为以下几点.
(1)该程序可演示一列波的产生和传播过程,并能改变各种参数.
(2)能演示同相或反相、同频率或不同频率的两列波的叠加情况.还可选择叠加波形与两子波形同时呈现于荧屏,使波的叠加情况清晰可见.
(3)能演示波的干涉产生的全过程、波的干涉图样以及波的干涉条件.
(4)突出显示波动中的某一质点的振动情况.
(5)可随时启用慢镜头功能,可调节波的传播速度,将实际的波动过程的时间延长,增强演示的效果.
(6)具有暂停功能,在演示过程中可在任何时刻将演示的现象定格,便于对演示过程的分析与讲解.
开展以创新为主的素质教育已成为教育改革的主旋律,以多媒体计算机辅助教学为核心的教育技术和教学手段的革新正将这段主旋律推向一个新的高潮.CAI以其直观、形象、生动的教学效果将有助于加深学生对教学内容的理解,有助于培养学生空间思维能力,有助于学生理解抽象理论.
参考文献
1 漆安慎,杜婵英.力学.北京:高等教育出版社,1997
2 肖诩.Visual Basic 6.0及其应用.上海:复旦大学出版社,2002