利用MATLAB实现PPT的实时绘图

时间:2022-09-21 08:25:06

PowerPoint由于简单且兼容性好等优点而成为广大中学教师制作课件的常用工具,但其绘图功能不强,而高中物理许多概念如平抛运动、圆周运动、简谐运动等都需要借助图形表现,制作这些内容一般用公式、文字和图片等来描述,学生凭借这些信息理解概念费时费力。利用MATLAB强大的科学计算和绘图功能,能够解决在幻灯片中实时绘图的问题。在PowerPoint中使用MATLAB进行实时绘图,为制作适合高中物理特点的课件给出了一个简单快捷的方法。

MATLAB是美国Mathworks公司推出的目前使用最广、功能最强的科学计算软件。它的特点如表1所示。

制作物理课件涉及函数图像,而完成实时绘图需要很强的编程能力,这对很多教师来说是困难的。若在PowerPoint中结合MATLAB增加实时绘图功能,不仅可以有效提高教学效果,而且还可以减轻教师的负担。

在PowerPoint中调用MATLAB必须借助于ActiveX技术。ActiveX是一门使用和集成组件的技术,ActiveX组件有六种类型:自动化服务器、自动化控制器、ActiveX控件、COM对象、ActiveX文档和ActiveX窗口。本文中用到的ActiveX组件有自动化服务器和自动化控制器。

自动化服务器是一种由其他应用程序编程驱动的组件;自动化控制器是指那些使用或操纵自动化服务器的应用程序,典型的自动化控制器如PowerPoint、Word和Excel等。

MATLAB支持ActiveX自动化服务器和自动化控制器,即MATLAB可以作为自动化控制器去操纵其他应用程序,也能作为自动化服务器而被其他应用程序所操纵。在VBA(Visual Basic for Application)中开启MATLAB自动化服务器功能的具体方法:

Dim matlab As Object

Set matlab = CreateObject(“matlab.Application”)

下面以高中物理中的简谐运动为例说明课件的制作过程。简谐运动的图像是一条正弦曲线,其数学表达式分别代表简谐运动的位移、振幅、角频率(一个与频率成正比的量)、相位和时间。

启动PowerPoint软件,建立一个空白幻灯片,在菜单中选择“视图/工具栏/控件工具箱”,在控件工具箱中选择“其他控件”中的“Microsoft Forms 2.0 Image”控件后,工具箱出现了“图像”选项,如图1所示。选中“图像”选项并将其拖到空白幻灯片的左侧,调整位置及大小,然后在幻灯片的右侧添加一个文本框和一个按钮,按钮名称设置为“简谐运动-频率比较”。

然后双击按钮,在随后出现的VB编辑窗口中输入下面的程序:

Private Sub cmd1_Click()

Dim h As String

Dim result As String

Dim matlab As Object

Set matlab = CreateObject("Matlab.Application") ’创建MATLAB对象

result = matlab.Execute("set(gcf,'visible','off');")

h = TextBox1.Value’h是在PowerPoint中输入的,由MATLAB的命令和函数组成字符串

result = matlab.Execute(h)’执行MATLAB程序

result = matlab.Execute("print(gcf,'-dtiff','c:\a.tif');")

result = matlab.Execute("x = imread('c:\a.tif');")

result = matlab.Execute("imwrite(x,'c:\a.bmp');")

Image1.Picture = LoadPicture("c:\a.bmp")’把保存在文件中的图像加载到幻灯片放映窗口

SlideShowWindows(1).View.GotoSlide 1

End Sub

输入后,放映幻灯片并在文本框中输入如下MATLAB程序(组合键“Ctrl+Enter”实现“回车换行”):

clc;

t = 0:0.001:pi;

//x1和x2分别代表振幅和相位相同,角频率不同(x1的角频率是x2的2倍)的简谐运动的表达式

x1 =0.5*sin(4*t+pi/2);

x2 =0.5*sin(2*t+pi/2);

plot(t,0,'-',t,x1,'-',t,x2,'--'),xlabel('时间'),ylabel('位移');//绘制图像

text(0.5,0.1,'x1=0.5*sin(4*t+pi/2)');//在图像上标注表达式

text(1.5,-0.4,'x2=0.5*sin(2*t+pi/2)');

title(['简谐运动图像-频率比较']);

grid on

pause(1); //暂停1秒,生成动画,便于观察

hold on;

最后单击按钮,幻灯片显示结果如图2所示。

图中的函数曲线逐一动态生成,学生通过观察图像的生成过程理解频率对简谐运动的影响,同理,还可以通过改变MATLAB程序生成振幅或者相位不同的简谐运动图像,理解振幅和相位对简谐运动的影响,从而加深对概念的理解。

参考文献

[1]张维善等.普通高中物理课程标准实验教科书―物理[M].北京:人民教育出版社,2004.

[2]李吉吉,张宏立.PowerPoint与MATLAB接口实现[J].新疆大学学报(自然科学版),2005,(1).

[3] 张志涌.精通MATLAB 6.5版教程[M].北京:北京航空航天大学出版社,2003.

上一篇:“手机网吧”进校园 学校面临新挑战 下一篇:龙芯教育技术与教学应用研讨会在常熟召开