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