在PowerPoint中利用VBA制作交互式物理模拟课件

来源 :中国教育信息化·基础教育 | 被引量 : 0次 | 上传用户:wmxlg2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘 要:在剖析PowerPoint VBA绘图方法以及Windows MIDI API函数的基础上,提出了利用VBA在幻灯片中直接绘制交互式物理图像,并根据物理参数实时控制物体运动、实时产生交互式背景音效的方法,从而为制作高性能交互式物理模拟课件提供了一条有效的途径。文中就有关方法及关键技术做了介绍,并给出了具体实例。
  关键词:VBA编程;实时交互;PowerPoint绘图;交互式音效;物理模拟课件
  中图分类号:G434文献标识码:A 文章编号:1673-8454(2008)16-0057-04
  
   PowerPoint由于其简单易用及兼容性好等优点成为广大教师制作课件的首选工具。但是,因为它不是专业的软件开发工具,用常规手段制作的课件也就是一篇演示文稿,交互性不强,显得比较呆板,这些因素致使许多教师在制作人机交互式物理模拟课件时不得不知难而退或选择其它开发工具。
   笔者经过反复思考和探索找到了在PowerPoint中利用VBA制作交互式物理模拟课件的有效途径,既解决了在幻灯片中直接绘制交互式物理图像的问题,还实现了用交互方式实时控制物体的运动、由MIDI函数和物理参数实时产生交互式背景音效的方法,这种方法巧妙地将编程语言的灵活性和PowerPoint的优点有机地结合起来,制作出的物理模拟课件不仅简单实用,而且特色鲜明、效果极佳,现就有关制作方法及关键技术介绍如下,希望能对各位同仁有所启发。
  
   一、PowerPoint VBA综述
  
  1.关于VBA
  在微软的Office家族中集成了一种加强Office功能的语言,即Visual Basic for Application,简称为VBA。VBA是Visual Basic程序设计语言(简称为VB)的一个子集,继承了VB的绝大多数功能,并包含了对PowerPoint对象的支持与操作功能,因此,易于掌握并用于宏编程。利用VBA使用者可以在幻灯片中添加控件等用户接口元素,通过这些控件应用程序可以得到用户的请求,并对其做出响应。在PowerPoint中适当地使用VBA,可以制作出交互性很强的模拟课件,为加强教学课件的演示效果开辟了广阔的空间。
  2.VBA的特点
  尽管VBA是VB的一个子集,具有与VB相近的开发环境,但在应用中与VB还是有一定的差异。VB是独立的应用程序开发工具,用其开发的应用程序可以独立运行;而VBA是嵌入PowerPoint的宏开发工具,用其开发的宏程序采用解释方式执行,而且宏程序是PowerPoint演示文稿的组成部分,必须在PowerPoint的支持下才能运行。
  3.VBA宏编程的方法
  跟VB类似,VBA也是面向对象的程序设计语言,采用的是事件驱动的编程机制。因此,宏的编制与VB编程一样,也是从对象的定义开始的。不过,与VB的通用对象不同,PowerPoint中除Application对象外,其它对象均未定义事件,无法驱动宏。因此,除了Application对象,可以产生宏驱动事件的对象仅限于VBA所支持的诸如命令按钮、文本框、图片框等VB通用控件对象,这些对象均包含在“控件工具箱”工具栏。在幻灯片中添加所需的控件对象,右击对象或选择“控件工具箱”中的“属性”就可以设置该对象的有关属性,双击对象可以打开VBA开发环境,开始编程,其间的操作与VB基本相同。
  4.宏程序的启动方式
  为了防范宏病毒对计算机的侵害,在PowerPoint的“工具”菜单中对宏的安全性设置了相应的安全级,只有将安全级设置成“低”或“中”,重新打开相应的PPT文件,并在系统提示的“安全警告”对话框中选择“启用宏”(当安全级设置成“中”时会出现此对话框),才能在幻灯片放映时启动宏程序,看到相应效果。
  
   二、在幻灯片中绘制交互式物理图像的方法
  
  1.PowerPoint中的绘图方法
  PowerPoint中的绘图方法非常有限,只提供了两种绘制直线的方法:
   (1)使用Shapes集合对象的AddLine 方法,格式为:
  Shapes.AddLineBeginX,BeginY,EndX,EndY
  其中,BeginX、BeginY和EndX、EndY是直线起始点和终止点的坐标,均为Single类型的必选参数,以磅为单位。
  
  用这种方法所绘制的直线是一个Shapes对象,就跟手工绘制的直线一样在幻灯片中一直存在;如需交互式绘制,则必须使用其它函数将这个对象删除,故不适于交互式函数图形的绘制。
  (2)使用SlideShowView对象的DrawLine方法,格式为:
  SlideShowWindows(1).View. Draw Line BeginX,BeginY,EndX,EndY
   有关参数的要求和作用跟上面相同。
  DrawLine方法实际上是模拟幻灯片中的绘图笔来进行绘图,绘制的图形只是在幻灯片上进行显示而没有在幻灯片中形成Shapes对象,不须另行处理,在幻灯片进行切换后就不会再显示该图形,如果需要还可以用EraseDrawing方法将所绘制的图形清除;此外,所绘图线的颜色可以用PointerColor属性进行灵活设置。因此用这种方法最适合绘制静态和动态物理图像。
  2.在幻灯片中绘制交互式物理图像的基本思想
  借助控件工具箱可以给幻灯片添加文本框、滚动条、组合框、列表框等用户接口控件,在幻灯片放映时通过这些控件可为有关物理模型提供实时的物理参数,并根据物理模型所对应的数学表达式计算出有关物理量,从而绘制出交互式的物理图像。
  值得一提的是DrawLine方法绘制的图线为直线,若想绘制逼真的物理图像必须采用折线逼近的思想,即将曲线(物理图像)细分成若干小段,每一小段用直线代替,当所分的小段足够小就可以使所绘制的折线图形非常接近于曲线,幻灯片放映时完全可以达到以假乱真的效果。
  具体做法是:若绘制的物理图像所对应的函数曲线是x=f(t),y=g(t),参数t一般为时间,则先定义两个Single类型的数组x和y,其元素的个数为拟观测的抽样点的个数,这个数也就是曲线被切分的小段总数再加1。然后通过循环让t从最小值(第一个观测点所对应的t)变化到最大值(最后一个观测点所对应的t),根据函数形式f(t)、g(t)计算出每一个t对应的x和y,并将结果存放到两个数组。最后通过循环顺序访问两个数组,以x(i)、y(i)和 x(i 1)、y(i 1)作为直线的两个端点坐标,用DrawLine方法进行绘制即可。
   跟VB类似,PowerPoint中默认的坐标系的原点位于屏幕的左上角,水平向右为X轴的正方向,垂直向下为Y轴的正方向,这跟我们习惯的迪卡尔坐标系有所不同。若想将Y轴的原点放在距屏幕上边界距离为L的位置,且向上为Y轴的正向,则必须进行坐标系的平移和变换,具体算法是:y’= L-y。
  
   三、用交互方式实时控制对象运动要解决的关键问题
  
  因为PowerPoint的特殊性及工具箱中提供的控件数量有限,在制作交互式模拟课件时有两个问题需要通过特殊途径来解决。
  1.如何计时
  用交互方式实时控制对象运动或绘制动态的物理图像,需要每隔一段时间调整一次物体的位置或计算一次有关物理量,因此如何准确计时就显得尤为关键。在VB等软件开发工具中都有计时器控件Timer可供开发者使用,但在PowerPoint中没有,能否解决这一难题是制作模拟课件的关键。笔者经过探索找到了两种不同的方法可以弥补这一缺陷:
  方法1:用Windows中的API函数
  利用Win32API中的定时器函数SetTimer()与KillTimer()。这种方法比较麻烦,需要在标准模块中声明这两个繁琐的API函数,并编写相应的定时器事件处理子程序。
  方法2:用VBA自带的Timer函数
  Timer函数返回的是一个单精度类型的时刻值(从子夜开始的秒数),测出两个时刻即可算出经历的时间。在代码中用一闲置循环进行等待,等到设定的时间后再执行后续代码,这种方法巧妙而又简单。如计时(等待)0.1秒就可用以下程序段:
  T = Timer
  While Timer – T < 0.1
  DoEvents
  Wend
  闲置循环中用DoEvents语句的目的是在等待期间可以将控制权交给系统,以顾及其它任务或请求。
  2.如何确定对象的名称
  代码中不可避免地要引用有关控件或对象的名称,但是只有从“控件工具箱”中添加的控件才能在属性窗口中查到其名称,对于从绘图工具栏中绘制的各种自选图形以及“插入”菜单中插入的文本框、图片和表格等对象其名称便无从得知。
  获取名称的唯一方法是针对这些对象录制一段临时宏,然后在宏代码中去查找。具体操作过程如下:
  (1)先将有关对象添加至幻灯片,然后打开“工具/宏”菜单中的“录制新宏”对话框,使用默认宏名并单击“确定”,此时会出现一个“停止录制”的浮动工具栏,表明已进入宏录制状态。
  (2)在幻灯片中调整该对象的位置或大小,然后单击浮动工具栏中的“停止录制”,结束宏录制。
  (3)打开“工具/宏”菜单中的“宏”对话框,选中相应的宏名并单击“编辑”后即可进入宏代码窗口,此时在代码中就可以查看到该对象的名称。
   (4)将录制的这段临时宏删除。
  
   四、实时产生交互式背景音效的方法
  
  MIDI是乐器数字接口的缩写,计算机的声卡中包含一个MIDI兼容的合成器,通过调用Windows MIDI API函数可以直接发送消息至合成器,从而产生相应的音效。有关MIDI输入输出的API函数主要有三个,这三个函数是低级MIDI API函数,其中midiOutOpen()函数用于打开设备,midiOutClose()函数用于关闭设备,midiOutShortMsg()函数用于传递MIDI输出消息,其第2个参数直接决定音效的内容,用速度、位移、时间等有关物理量控制该参数中的第2个字节的内容(数值左移8位,也就是乘以256即可移到第2个字节)就能实现用物理量控制MIDI消息,从而产生由物理量控制的交互背景音效。限于篇幅,其它参数不再详述,请参照本文实例中的用法。
  
   五、制作实例
  
  下面以斜抛运动为例,介绍在PowerPoint中制作交互式物理模拟课件的过程。
  本课件要实现的功能是:动态模拟斜抛运动的全过程,抛射的初速度和抛射角度可通过滚动条调节,其数值既在标签中显示,又通过有向线段的长短及方位的变化形象地展示;当调节初始参数时飞行轨迹也动态出现在幻灯片中并随参数而变化;抛射过程中有音效伴随,音频随飞行时间而变化,抛射后既可看到物体在空中的飞行,又可看到组合框中滚动显示的即时飞行参数;单击“轨迹”按钮可随时查看飞行轨迹。运行效果如图1所示。
   1.添加对象
  (1)插入一张空白幻灯片,通过“视图/工具栏”菜单打开“控件工具箱”和“绘图”这两个工具栏。
  (2)通过“控件工具箱”在幻灯片下方添加一个命令按钮作为地平面,在属性窗口中将“名称”属性改成“地面”,并将其Enabled属性设置成False。
  (3)在“地面”左侧添加一个滚动条用于控制初速度Vo,将“名称”属性改成“速度”,并将Max属性设置成80(最大初速度)。
  (4)在速度滚动条旁边再添加一个滚动条用于控制抛射角β,将“名称”属性改成“角度”,并将Max属性设置成90(最大抛射角)。
  (5)在“地面”中央添加两个命令按钮用于控制抛射和查看飞行轨迹,将“名称”属性分别改成“抛射”和“轨迹”。
  (6)在“地面”右侧添加一个组合框用于记录和滚动显示飞行参数,将“名称”属性改成“参数记录”。
  (7)在滚动条上方添加一个标签用于显示Vo和β的值,将“名称”属性改成“显示参数”。
  (8)通过“绘图”工具栏在“地面”左上方画一个红色立体小球,对应抛射物。
  (9)选中“绘图”工具栏中的“箭头”,以小球为起点画一个白色的箭头,对应抛射角的射线。
  2.确定对象名称
  为了便于阅读程序,通过“控件工具箱”添加的控件名称已按“见名知意”的原则在属性窗口中做了更改,而通过绘图工具栏绘制的小球和射线,要借助上面介绍的“录制新宏”的方法确定名称。按照本文介绍的顺序添加有关对象,其名称分别为Shapes("Oval 2") 和Shapes("Line 13")。
  3.编写宏代码
  在幻灯片中双击按钮或滚动条等对象进入宏编辑窗口,并输入以下完整代码:
   Private Declare Function midiOut Open Lib "winmm.dll" (lphMidi Out
其他文献
“躲猫猫”的绵羊  加拿大牧羊人利兹每天早上都要经历一次寻找“隐形”羊的艰难过程。看上去似乎只是一片荒凉的土地,定睛一瞅,便会发现有一群绵羊巧妙地隐藏其中,总数多达500只。这群调皮的绵羊给放牧带来了很大的困难,令利兹头疼不已。  “汪星人”说走就走的旅行  金毛犬Aspen是一只极具冒险精神的“汪星人”。年仅4岁的它已跟随主人走遍了世界各地。同时,它又是镜头感极佳的“模特”,总能摆出各种姿势,与
摘 要:基于教育BLOG平台的数字化教研活动是一种符合信息时代特色的新型教研模式,在建立教师作为教研主体的地位、释放教师的创造性、促进教师专业发展、建立日常化教研模式、建立实效教研体制、推进教育信息化等方面具有潜在的功能,必将对教师的专业发展和教育信息化的发展产生深远的影响。  关键词:教育BLOG平台;数字化教研;潜在功能  中图分类号:G451 文献标识码:A 文章编号:1673-8454(2
摘 要:随着教学信息的快速增长,越来越多的教育单位都需要开发自己的教学门户信息系统,目前,大多数教学门户信息系统都是采用传统的技术和架构,这些传统的技术和架构存在结构混乱、不易扩充等诸多缺点。本文提出了一种基于MVC架构的开发方法来架构教学门户信息系统,不仅能解决传统方法存在的问题,而且能够开发大型的教学门户信息系统。  关键词:教学门户信息系统 MVC Struts 构件  中图分类号:TP31
豪宇往炒锅里倒了一些油,油还没有太热,他就把鸡蛋液倒进锅里了,他害怕热油溅起来烫伤自己。等蛋液结块了,他便盛出来放进盘子里。他又往锅里倒了一些油,把葱段放进去炒,然后倒入西红柿,翻炒了一会儿,把鸡蛋块加进去,搅动几秒钟后,盛出来放在一边。  豪宇往锅里倒了两瓢水,盖好锅盖,等水烧开了,将一撮挂面放进去煮。他不知道煮多久能熟,就不时地用筷子夹起一根面条,放进嘴里尝。等看见面条芯完全没有白色,咬起来也
摘 要:近期笔者看了2008年4月《中国教育信息化》(基础教育)上的题为《Flash中加载外部文本的方法》,深有同感,在前几年笔者就已经做了这样的尝试,利用这个技术实现课件中教师的单位、姓名等的自定义,让使用者能运用课件体面地上课,同时又能尊重课件制作者的劳动,从而真正地实现课件共享。   关键词:课件;外部文本;Flash;Authorware   中图分类号:TP37文献标识码:B文章编号:1
王巧巧以前是最瞧不起标点符号的,在打逗号的时候常常忽略小逗号那圆圆的头,直接把小逗号的头去掉,只剩下一个可怜的尾巴,搞得小逗号就像一个缺胳膊少腿的残兵败将;或者把标点符号挤扁在字堆里,淹没在字里行间,不给人家一点儿呼吸的空间。  语文老师李老师几次给她指出这个问题,王巧巧表面上答应,可心里却满不在乎,还说:“不就一个小标点符号吗?为什么要把它写好看呢?浪费时间!为什么要占一个格子呢?浪费本子!”说
世界上最伤心的事情,莫过于失去最好的朋友。  世界上最可气的事情,莫过于你最好的朋友丢下你不管,去跟另外一个人玩得热火朝天!  小镜子一面漫无目的地走着,一面胡思乱想。她又伤心又生气,大颗的泪珠从脸上滚落下来。刚才发生的事一遍遍在脑海里回放,刺痛着她的心。  事情是这样的:小镜子和小影子是无话不谈的好朋友。她们经常去一片小池塘玩,那里幽静而优美,是只属于她俩的秘密基地。可是,今天,小影子远方的朋友
我之前听说过,有人想靠喝年輕人的血,让自己保持年轻。
起名字  几个朋友在筹办一家网络公司,他们激烈地争论着公司该叫什么名字。  有人说:“就叫‘想象力’吧!”  大家一听,都觉得不错。这时,一个人突然想到了什么,冷静地说:“你们真想在名片上印上‘想象力有限公司’吗?”  加班过多  职业介绍所的职员正询问一位求职者。  职员:“你今年才32岁,怎么已经有了38年的工作经验?”  求职者:“哦……因为加班过多的缘故呀!”  四川省雅安市外国语实验小学
摘要:校园用地规划是教育资源可持续发展的必然要求,而WebGIS技术在校园用地规划上的应用将促进教育资源的合理布局以及规划成果的有效管理和信息共享。本文通过对GIS技术的分析和南京市中小学校园用地规划信息系统的建设,对WebGIS技术在教育资源的配置和管理中的应用进行了研究和尝试。  关键词:WebGIS;校园用地规划信息系统;系统设计  中图分类号:TP315文献标识码:B文章编号:1673-8