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