步骤1 缘起
大家应该都知道,传统的炮弹轨迹在不考虑空气阻力、风向等因素的理想状态下,其飞行的简化数学模型为抛射曲线,或者说它进行的是斜抛运动,它的运动轨迹是一条抛物线。根据运动独立性原理,可以把斜抛运动看成是作水平方向的匀速直线运动和竖直上抛运动的合运动来处理或沿V0方向的直线运动和自由落体运动的合运动。斜抛运动的三要素是射程、射高和飞行时间。 斜抛运动有斜上抛和斜下抛之分,一般的,若不指明,我们都默认是斜上抛。斜抛运动水平方向做匀速直线运动,竖直方向做竖直上抛运动。
步骤2 基于现实的修改
不过,因为考虑到scratch场景的大小布局问题,本程序并不按照这个基本原理来做,而是采用了不一样的算法。
当然为了遵循运动合成的原理,给予炮弹水平方向的运动变化,和竖直方向的运动变化。给予炮弹一个初始速度,通过每次改变炮弹的相对运动距离,来进行运动模拟。当然为了增加不同的效果,在X轴的方向上增加了风力的变量,在Y轴的方向上增加了下降速度的变量。
为了有明显的效果,10,0.95,-200几个参数都是不断调整的结果,如果读者有更好的想法。当然可以自行修改尝试。
除了以上参数外,增加了可手动调整的其它几个参数。大家可通过调整,了解影响运动方向的整个过程。
步骤3 代码效果
本实验使用Mind+进行,不得不说Mind+在scratch3的基础上做得修改很人性化。上手快,更加适合初学者和有一定基础的人继续学习使用。
步骤4 反思
因为时间的关系,还没有加入击中目标的效果,有兴趣的读者可自行添加修改。通过调整参数,击中随机出现的目标,一定是一件振奋人心的事!
评论