Box2D在动量守恒定律课件制作中的应用研究

    徐晓

    

    Box2D是一个可以自动管理物体的不同状态(碰撞、弹跳等)、模拟2D刚体物体的物理引擎,其通过创建各种刚体来实现不同效果。在中学阶段,物理学科中动量守恒定律的内容涉及物体运动、物体碰撞等状态,教师可以通过物理引擎Box2D来进行模拟与控制。笔者利用Flash制作了中学物理动量守恒定律课件,并运用Box2D物理引擎更好地实现了物理过程,希望学生能够更直观、具体地认识物理知识,以及深层次地理解和应用。

    ● Box2D简介

    最初,Box2D是用C++语言编写的一个开源的二维物理仿真引擎,因很受欢迎所以衍生出ActionScript3的版本。目前Box2D源文件有两个版本——2.0.2与2.1a,2.0.2为早期版本,文档较详细,在2.0.2基础上,2.1a做了修改,是新版本,本文介绍的是Flash版。

    Box2D具有简单、有效、实用的特点,可以设置物体的质量、弹性、摩擦力、添加铰链及弹性约束等状态。关于物理中碰撞类、运动规律类、刚体动力等实验物理,教师可通过Box2D构建实现。

    ● 基于Box2D的动量守恒定律课件制作分析

    1.动量守恒定律教学中的问题分析

    (1)对碰撞问题的理解不透彻

    中学阶段的学生拥有一定的逻辑推理和科学想象能力,但实验操作能力不成熟,虽善于观察周边的生活,但往往是从感性的角度总结归纳物理知识,缺乏理性的思考,容易得到一些与科学背道而驰的观点。同时,学生对动量概念理解不透,对碰撞问题的理解比较单一,无法进行系统分析。从机械能损失分类来看物理中的碰撞问题,三种碰撞之间的动量守恒与否,以及动能损失情况对学生来说是难点,他们的逻辑推理、科学想象能力还有待提高。

    (2)缺乏知识迁移与实际运用能力

    学生在中学阶段已建立良好的感性认识,通过知识建构,可以顺利过渡到物理学习中的最近发展区。但在实际生活中,缺少物理知识的学习情境,学生在知识迁移、实际运用解决问题等方面有些薄弱。

    例如,在动量守恒定律内容上,对于子弹打木块类问题,学生无法对某个系统动量守恒与否进行准确判断,在应用动量守恒条件时感到困惑,不能顺利进行迁移,并解决问题。在动量守恒定律内容的应用中,在人船模型问题中,速度v和质量m,拓展到位移s、质量m上面,这个问题的解决对大部分学生来说,相当棘手。

    2.动量守恒定律课件的功能分析

    从系统的角度来说,在子弹打木块类碰撞问题上,子弹、木块与弹簧三者作为整体,子弹射入木块到弹簧缩至最短,这个过程中固定端的墙壁对弹簧有外力作用,因此动量不守恒;子弹射入木块过程中存在摩擦,有部分能量转为内能,因此机械能不守恒。若分阶段来分析,子弹射入木块的一瞬间,子弹与木块二者为一个系统,则认为动量守恒;子弹射入木块中间的压缩过程,机械能守恒,动量不守恒。通过对阶段进行分析,得出一定的物理规律。在物理学习中,对问题分析划分、过程选取,需要进行二次判断从而正确进行分析。

    ● 动量守恒定律课件的实现设计

    1.碰撞管理

    在碰撞中,发生碰撞的两个物体在碰撞前后的区域是不限定的,这样的情况下,物体的初始和碰后移动的区域就发生了变化,而画面的极速跳转不利于学生观察动画,影响其思维转换。在基于Box2D的动量守恒定律课件中,利用Box2D的Box2D.Collision(碰撞、监测类)中的b2AABB坐标类来实现区域的限定,对碰撞进行管理,可使碰撞的效果更佳。

    在这个限定区域两个物体发生碰撞,通过这种设置使得物体的碰撞前后的位移能够得到精确的计算,在分析碰撞后的动量是否守恒、动能是否有损失、有多大损失方面进行探讨,通过分析,学生对弹性、非弹性以及完全非弹性碰撞三类问题进一步加深理解。

    2.碰撞检测

    通过对一般动量守恒定律课件的分析,在兩个物体碰撞时并没有进行碰撞检测和管理,这样物体经常被卡住不能前进或者穿越了障碍。在动量守恒定律课件制作中,Box2D物理引擎的碰撞检测要求为:在一般场景内,物体可以平行移动;遇到台阶(一定高度内),可自动上去,若台阶过高,则需要把人挡住;遇到斜坡(斜率较小),可顺利上去,否则把物体挡住。需要注意的是,当被挡住前进方向时,应尽量让人物沿合理方向下滑,不能被迫停住。整个过程需要做到稳定、精确,防止物体因为特殊情况,穿出或掉出场景。在Box2D物理引擎中,通过Box2D.Dynamics(动态类)中的b2ContactListener(用来获取碰撞结果类)来完成,代码中,首先需要写一个继承自b2ContactListener的类(如图1)。

    3.碰撞实现

    基于Box2D实现动量守恒定律课件的功能设计分析,为Box2d的b2World对象加入listener(代码如图2),来实现碰撞。最后,对myListener的isWin和isLost属性进行判断即可。

    将Box2D物理引擎引入物理实验的设计活动中,可简单、高效地进行物理实验教学课件的开发,使得物理实验效果更加真实。同时,这种方法可在其他多媒体课件中应用。

    ● 研究总结

    基于Box2D实现模拟物理实验,如游弋在一个与现实世界截然不同且又能很好地理解的物理世界,Box2D在动量守恒定律课件制作中的应用研究,就是人们对物理引擎在物理课件中应用的不断深入认知与创新。笔者也相信,目前物理引擎应用于物理学课件中的方法会被更好的方法取代。

相关文章!
  • 高等教育人工智能应用研究综述

    奥拉夫·扎瓦克奇-里克特 维多利亚·艾琳·马林【摘要】多种国际报告显示教育人工智能是当前教育技术新兴领域之一。虽然教育人工智能已有约

  • 浅析高中政治教学中学生的自主

    祁大为摘 要:伴随时代快速发展的步伐,对学生提出了更高的要求。要求学生不断充实掌握丰富的知识,具备更高更强的能力,以适应当今时代飞

  • 浅析高中生语文自主性阅读能力

    施晓霞【摘? 要】阅读,无论在哪个时期,都是提升人们文化素养的一个极好的渠道。而到高中,随着学生的自我成长,自主性有一定的发展,但针对