旋轉(zhuǎn)的多邊形(也稱作五彩萬花筒)是在簡單旋轉(zhuǎn)圖形的基礎(chǔ)上的升級。我們將學(xué)習(xí)制作根據(jù)回答畫出2-9邊形并旋轉(zhuǎn)的程序。
程序開始詢問“請輸入2-9之間你喜歡的數(shù)字”,以輸入的數(shù)字確定幾邊形,并通過旋轉(zhuǎn)一周形成漂亮的圖案。如果輸入的數(shù)字超出范圍,比如10邊形以上就和圓形差不多了。這時就要求重新輸入(圖1)。
繪制前要確定幾點:在確定旋轉(zhuǎn)點(0,0),旋轉(zhuǎn)顏色(自定義還可以變色),以及旋轉(zhuǎn)的方向(順時針)后,根據(jù)輸入的邊數(shù)和邊長(固定為65)首先繪制出一個正多邊形,然后按照旋轉(zhuǎn)點順時針旋轉(zhuǎn)15次。就可得出我們的旋轉(zhuǎn)后的圖形了。在繪制的過程中要合理使用廣播功能和自定義積木搭建,能提高程序效率。
程序分為詢問和繪畫兩個過程,在程序開始運行后,發(fā)出廣播:詢問。詢問過程要保存用戶輸入的多邊形邊數(shù),用于繪制。
收到詢問的廣播后,首先對輸入數(shù)字進(jìn)行判斷,看是否在要求范圍內(nèi)。如果符合就將回答的數(shù)字賦值給記錄答案,然后停止這個腳本(圖2)。
當(dāng)收到繪制的廣播后,便開始繪制過程。
初始化:使用畫筆工具,面向90°方向,設(shè)置旋轉(zhuǎn)點為(0,0),設(shè)置好粗細(xì)和顏色(為了實現(xiàn)每次旋轉(zhuǎn)的顏色不重復(fù),可以把顏色設(shè)置為隨機數(shù),在50和100之間任意取值)。
初始化后,開始執(zhí)行旋轉(zhuǎn),這里嵌套了一個外循環(huán)重復(fù)執(zhí)行15次(固定值),在繪制一個多邊形后,順時針方向旋轉(zhuǎn)15次,角度固定使用(360/15)。還可以根據(jù)正多邊形的邊數(shù)進(jìn)行旋轉(zhuǎn),將15改為“記錄答案”的變量即可,旋轉(zhuǎn)的角度也需相應(yīng)換算(圖3)。
繪制各種正多邊形是必須掌握的基本技巧,根據(jù)邊數(shù)(輸入值),邊長為固定值65(可自定義)。創(chuàng)建自制積木“繪制正多邊形”,包含兩個變量邊數(shù)n和邊長s。
根據(jù)邊數(shù)進(jìn)行重復(fù)循環(huán)執(zhí)行n次,在循環(huán)中首先根據(jù)邊長移動,再進(jìn)行角度的旋轉(zhuǎn),根據(jù)正多邊形外角和為360度,轉(zhuǎn)動角度為(360/n)。直到旋轉(zhuǎn)完成后形成正多邊形,便完成繪制(圖4)。
通過繪制不同的圖形,可以鍛煉對于循環(huán)的理解,通過對比程序?qū)嶋H運行效果和自己預(yù)估效果之間的異同也能更好地提高對于編程語言的敏感度。