資訊內容
用scratch模擬物理現象之——小球自由落體彈跳系列3
接著上期的小球自由落體彈跳,我們說到了想要讓小球彈跳時呈現出對稱的拋物線軌跡,我們也尋找了原因——小球在彈到頂點和落到最低點的瞬間,速度的大小和方向每次都可能不一樣,并且難以通過條件的設置達到合適的糾正值,導致在轉換瞬間已經偏離了中點。同時,也提出了一個改進方向:不明確區分“反彈”和“下落”算法表達。
按照這個方向探索,總是止步于一個問題——時間變量【t】。只要以【t】來確定速度和位移,在小球下落、上升的轉換瞬間必須重新計時【t】,這樣就必須明確區分“小球下落”和“小球上升”兩個不同階段。因此,需要對時間變量【t】做改造!!我們讓它不再是連續累積計時,而是作為一個時間間隔用,事實上我們讓小球做出運動軌跡,就是在不同的時間點運動到相應的坐標位置。
因此,我們讓時間變量【t】變為【時間間隔】!(這是來自于成都都江堰的劉老師的算法,我對他的算法進行了修整和清晰化)
在給出核心腳本程序前先設置初始條件:小球【水平拋出速度】為4,忽略空氣摩擦阻力;以【時間間隔】替代原來的時間變量【t】;變量重力加速度【g】=-9.8(給定了方向);設一個【y坐標】的變量,為方便小球在縱向位置的調節;小球初始位置為(-130,120)。
這一次先不畫拋物線了,試試用“圖章”表達小球的運動軌跡——每過一個時間間隔就會有“圖章”印下小球的圖像!
上腳本!
?主體程序表達意思:
1、小球下落,觸地后反復彈跳,直到彈跳到邊緣(x坐標>=240)要求:反復調試設置好水平拋出速度、反彈速度系數。同時與觸地后的矯正y坐標也有一定關系。2、下落時,下落的位移并不完全按照受重力加速度影響來計算。而是用s=vt(勻速運動位移公式)來計算,優點是小球反彈后可以繼續按照這個公式來計算,并且在表達上更優美——基本以均等的間隔來體現小球運動變化。3、小球觸地后(y坐標<-150),改變速度方向,發出撞擊地面聲音。可以用下一個造型來換小球顏色,區分小球不同彈跳階段。由于能量損耗,反彈速度為下落時速度的0.85(【反彈速度】可以仍然用【下落速度】來表達)。由于小球每一次觸地時的位置不同(由速度變化帶來的),觸地后可以矯正一下y坐標。來看看效果!果然,軌跡漂亮了很多!
當然,我們還可以畫線。可以在初始化的時候設置好畫筆。
可以清晰地看到:小球每次“觸底反彈”位置都不太一樣,同時受時間間隔的影響拋物線不平滑,有點呈鋸齒狀。所以用印章表達更為美觀!
到這里,我們的小球自由落體彈跳3系列就結束了。很快藍橋杯要開賽了,下一期我們來談談藍橋杯scratch組的題!
轉發自“啟迪少兒”公眾號的原創文章
作者:北京通州的迪迪媽
。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
