陳新龍
推實心球是學生體測必考項目,我們向空中斜向拋出一個實心球,根據重力和速度的關系,在空中劃出一道弧線后落地,這樣一條弧線就是拋物線,實心球做的運動就是斜拋運動。斜拋運動的定義是物體以一定的初速度斜向射出去,在空氣阻力可以忽略的情況下,物體所做的勻變速曲線運動。今天我們用編程來模擬初速度和角度對拋物線的影響(圖1)。

在模擬的過程中要使用拋物線公式,搜索“斜拋運動”一詞,獲得拋物線的公式,有足夠數學知識的可以更仔細地了解公式解析。
在Scratch編程,創建一個小球Ball角色,初始的位置(-180,-140)。程序開始前通過滑桿調整發射速度和發射角度的值,將這兩個變量顯示形式調整為“滑桿”。在小球發射前,需要設置畫筆的狀態,移動到初始位置,設置落筆狀態,畫筆的粗細,將頁面中內容全部擦除。計算初始的速度Vx和Vy(Vx等于速度乘角度的cos值;Vy等于速度乘角度的sin值)并且增加變量t用于統計小球運動的時間(圖2)。

小球按照設定變量發射后,為了方便觀察運動軌跡,每隔0.01秒標記一次小球的位置,首先計算垂直距離dy,如果dy小于0,說明小球已經扔落到地面,程序結束。反之計算水平距離dx,需要把小球的實際飛行距離轉換成在舞臺上的坐標位置,其實就是把(dx,dy)轉換成(xPos,yPos)。舞臺默認垂直長度為320(-140至180)水平長度為420(-180至240),將兩者都轉化為實際長度100之內(圖3)。

完成代碼后,添一張背景圖片,這樣一幅完美的拋物線運動軌跡就完成了(圖4)。

Scratch是一件神奇的工具,當它和科學知識結合時你就可以實現更多意想不到的樂趣。
