陳新龍
“爆竹聲中一歲除,春風(fēng)送暖入屠蘇?!惫磐駚?lái),煙花與節(jié)日,煙花與詩(shī)詞都結(jié)下了不解之緣。放煙花是一個(gè)古老的節(jié)日民俗活動(dòng),五彩繽紛的煙花像是隨開(kāi)隨落的降落傘,煙火重疊,在夜空中構(gòu)成了美麗的圖案,成為我們欣賞的風(fēng)景線。看了那么多的煙花,不知道大家有沒(méi)有興趣一起動(dòng)手做一個(gè)呢?
今天我們用掌控板結(jié)合mPython來(lái)制作電子煙花的動(dòng)畫效果,展現(xiàn)出煙花從升起、綻放,再到消失的整個(gè)過(guò)程。通過(guò)這個(gè)實(shí)驗(yàn),我們可以熟悉循環(huán)模塊的使用,學(xué)會(huì)圖形繪制的方法(這里我們綻放就使用了圓圈的效果),還可以了解一點(diǎn)點(diǎn)掌控板RGB燈的應(yīng)用(目的是為了實(shí)現(xiàn)煙花綻放時(shí)的效果)??偟膩?lái)說(shuō)電子煙花動(dòng)畫效果分為三個(gè)步驟。
首先設(shè)置兩個(gè)變量Y和 R 。Y代表上升的Y軸的坐標(biāo);R代表煙花的圓圈綻放半徑。程序開(kāi)始先顯示一個(gè)“美麗的煙花”文字效果,然后進(jìn)入正式程序,由于煙花的上升過(guò)程類似于一條直線,所以這里我們?cè)O(shè)置Y的范圍是60到30之間,每次的間隔為10,在執(zhí)行的過(guò)程中X的坐標(biāo)軸不變,Y的坐標(biāo)軸隨著設(shè)定的范圍移動(dòng),直線的長(zhǎng)度為10,在寫完煙花上升程序后,運(yùn)行可以看到一個(gè)長(zhǎng)度為10的垂直線條自下而上的過(guò)程。
煙花升入天空后,緊接著就是綻放,首先設(shè)置R的取值范圍,當(dāng)然也是綻放的圓圈大小,這里設(shè)置R的取值范圍從0到24,每次的間隔為2,設(shè)置完成后,就是實(shí)現(xiàn)綻放的效果,綻放過(guò)程中圓心是確定的,圓心根據(jù)煙花上升的橫坐標(biāo)和縱坐標(biāo)來(lái)決定,半徑從0到24,每次以2擴(kuò)張。這里提醒一下大家,一定要繪制空心圓,最終出來(lái)的效果像波紋一樣從內(nèi)圈慢慢地?cái)U(kuò)散出去,如果選擇了實(shí)心圓的話效果就從小圓點(diǎn)變成大圓點(diǎn)了。
煙花升入天空綻放過(guò)后,過(guò)段時(shí)間就會(huì)消失不見(jiàn)了,這里我們就在綻放的基礎(chǔ)上稍作修改就可以實(shí)現(xiàn)效果,消失的過(guò)程只需要用到擦除,從內(nèi)圈漸漸地往外圈消失便完成了。擦除的范圍坐標(biāo)與半徑和煙花綻放的坐標(biāo)與半徑都是相同的。
按照上圖操作基本上一個(gè)煙花的綻放過(guò)程就完成了,但是只有一個(gè)煙花太過(guò)單調(diào)了,我們可以增加兩個(gè)小的煙花,代碼類似,只需要更改一下坐標(biāo)軸的位置和煙花的半徑就可以實(shí)現(xiàn)了(效果中設(shè)置了一左一右兩個(gè)小煙花)。大家可以嘗試做做看。
這次實(shí)驗(yàn)教大家如何用掌控板結(jié)合mPython做一個(gè)電子煙花動(dòng)畫效果,難度還是有的,考驗(yàn)大家對(duì)圖形繪制以及變量使用的水平,大家可以開(kāi)動(dòng)一下小腦筋想想如何做出不一樣的煙花。