Scratch编程与物理-用Scratch学习“抛物运动”

网友投稿 2019-11-17 14:13

一、什么是“抛物运动”?

在生活中,抛物运动很常见,我们向空中斜向抛出一个小球,在忽略空气阻力的情况下,小球在空中划一个完美的弧线,最后落地,这样的一个弧线就是抛物线,小球所做的运动就是抛物运动。

下面是用Scratch模拟了一个抛物运动的运动轨迹,动图如下。

https://cdn.china-scratch.com/timg/191119/141332DX-0.gif

今天我们就来用Scratch实现这样一个“抛物运动”的模拟器。

在编程之前,我们先来学习到底什么是"抛物运动"。

https://cdn.china-scratch.com/timg/191119/1413335503-1.jpg

小球以初速度V发射出去,发射角度为a。我们将速度矢量V分解为水平方向和垂直方向两个部分。水平方向做匀速直线运动,垂直方向受重力影响,做加速度为重力加速度的匀变速直线运动。两个方向合并后的运动轨迹就是抛物线。

二、“抛物运动”的知识点学习

下面我们来看看抛物运动的相关公式。

在忽略空气阻力的条件下,分解速度,则有:

其中Vo为抛出速度,θ为速度与水平面夹角,g为重力加速度

水平方向的速度是:

https://cdn.china-scratch.com/timg/191119/1413332013-2.jpg

竖直方向的速度是:

https://cdn.china-scratch.com/timg/191119/1413334436-3.jpg

水平方向的位移方程是:

https://cdn.china-scratch.com/timg/191119/1413334936-4.jpg

竖直方向的位移方程是:

https://cdn.china-scratch.com/timg/191119/1413331313-5.jpg

从公式

https://cdn.china-scratch.com/timg/191119/1413334436-3.jpg

可得当

https://cdn.china-scratch.com/timg/191119/1413335509-7.jpg

时,小球达到最高点所用时间为 

https://cdn.china-scratch.com/timg/191119/1413332610-8.jpg

用竖直方向的位移方程可知,斜抛运动能达到的最大高度公式:

https://cdn.china-scratch.com/timg/191119/14133435H-9.jpg

小球回到地面的总运动时间为

https://cdn.china-scratch.com/timg/191119/1413342330-10.jpg

总水平射程是:

https://cdn.china-scratch.com/timg/191119/1413345H2-11.jpg

https://cdn.china-scratch.com/timg/191119/1413343147-12.jpg

https://cdn.china-scratch.com/timg/191119/1413344J8-13.jpg

https://cdn.china-scratch.com/timg/191119/141334J06-14.jpg

小球能达到的最高点叫射高,从抛出点到落地点的水平位移叫射程

射时T:

https://cdn.china-scratch.com/timg/191119/1413342330-10.jpg

射高H:

https://cdn.china-scratch.com/timg/191119/1413342439-16.jpg

射程R:

https://cdn.china-scratch.com/timg/191119/14133435O-17.jpg

用Scratch实现“抛物运动”的模拟器

三、程序思路

https://cdn.china-scratch.com/timg/191119/1413344559-18.jpg

(抛物运动模拟器的操作界面)

1、程序包含两个角色:1、小球Ball ;2、发射按钮Fire。

小球在舞台上的起始位置是(-180,-140)。

2、通过设置变量speed和变量angle的值来调整小球的发射速度和角度,然后单击Fire按钮发射小球。

当用户单击Fire按钮时,它会广播一条消息,小球接收消息后发射出去。

3、小球在发射前,需要移动到起始位置(-180,-140),然后设置落笔状态,并清除之前的笔迹。计算初始速度Vx,Vy。

https://cdn.china-scratch.com/timg/191119/141335ED-19.jpg

4、小球发射后,每0.02秒计算并更新一次小球的位置。

首先计算垂直距离dy,如果为负值,说明小球已经达到地面,程序结束。

https://cdn.china-scratch.com/timg/191119/1413355F9-20.jpg

5、计算水平距离dx,脚本需要把小球的实际飞行距离转换成在舞台上的坐标位置,也就是把(dx,dy)转换成(xPos,yPos)。

舞台中模拟器的垂直长度为320(从-140到180),对应实际长度的100米,从(0到100)。

舞台中模拟器的水平长度为420(从-180到240),对应实际长度的100米,从(0到100)。

因此小球在舞台上飞行的垂直距离为320*dy/100步,水平距离为420*dx/100步,这两个数值分别加上小球的起始坐标,就是小球的实时位置。

https://cdn.china-scratch.com/timg/191119/1413353W0-21.jpg

 

四、程序清单

1、Fire按钮的程序代码

https://cdn.china-scratch.com/timg/191119/1413351606-22.jpg

2、小球Ball的程序代码

https://cdn.china-scratch.com/timg/191119/1413351c7-23.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com