試想看看,如何利用程式積木設計出如下列以多個正多邊形組合做出萬花筒的效果
3個X3邊形
8個X8邊形
60個X4邊形
60個X30邊形
💡萬花筒效果的程式設計概念
依序詢問「要畫出正幾邊形?」、「要畫幾個圖形?」
程式依照輸入「正多邊形種類」與「數量」繪製
(1) 以舞台的中心點(0,0)為起點繪製正多邊形
(2) 多個圖形要圍繞舞台的中心點平均分布
流程圖如右
➡️程式展示
Part 1: 3X3彩色幾何圖形
以3個X3邊形的圖形為例,觀察圖1,可看出畫出第一個三角(邊)行後,畫筆回到原點(0,0)再畫第二個,再回到原點後再畫出第三個。(此處的三角(邊)形可以參考之前的繪製正多邊形程式的方式。) 此處使用"雙層重複結構"來畫出幾何圖形
加入筆刷積木後,嘗試完成3X3的圖形吧! (➡️觀看老師的示範成果)
💡提示:
新增畫筆(可用內建圖庫或是下載老師提供的畫筆圖庫角色(點此選連結) )
定位及方向
筆跡清除
畫筆顏色設定
下筆
畫筆顏色變化(注意積木應放在重複結構內)
停筆
Part 2: 萬花筒幾何圖形
📚模組化
在程式設計中,我們常將一個大程式拆解成幾個功能獨立且可以重複使用的小程式,這些小程式就稱為「模組」;每個模組分別開發,最後再合併成一個大程式,這樣的模式即為「模組化程式設計」,「模組化」在不同的程式語言中會有不同的實踐方式,而在Scratch 中,「函式」就是一種模組化的方法。
📚函式
在Scratch 中,我們可以將具有特定功能或重複出現的程式區塊定義成「函式」,並賦予一個有意義的名稱,只要經由簡單的「呼叫」,就能完成一連串的程式功能。
利用函式積木建立"畫筆函式"(副程式),再由主程式呼叫進行執行
📝試試看將繪製正幾邊形改成使用函式的方式,並加入詢問要幾個正幾邊形(個數與邊數相同)
新建"正多邊形函式"
添加輸入方塊以確定邊數
再方塊中鍵入"邊數"後,按下"確定"
由使用者鍵入邊數(個數),主程式執行後呼叫畫筆函式及正多邊形函式,執行結果為邊數與個數相等的正多邊形。
💡副程式中的邊長,由原100改成300,以避免執行運算後邊長太短的情況
📝試想看看,若要讓使用者自行決定畫出幾個正幾邊形時(邊數與個數不同),要如何改寫程式?
例如:60個四邊形、60個30邊形
💡思考重點:
設定詢問
(1) 共有2個提問(邊數及個數),須分別儲存輸入的答案
(2) 新增變數邊數及個數來儲存答案 (利用變數積木來建立變數)
依輸入畫出正多邊形
(1) 繪製的圖形必須以(0, 0)為中心平均分布:(以正三角形為例)
(2) 若要畫的圖形數量為個數,則每畫完一個圖形,鉛筆要旋轉360/個數度
可依正三角形的圖形數推論:
(1) 2 個圖形的旋轉角度= 360÷2 = 180
(2) 3 個圖形的旋轉角度= 360÷3 = 120
(3) 4 個圖形的旋轉角度= 360÷4 = 90
→ n 個圖形的旋轉角度= 360÷n
利用變數積木來呈現邊數與個數的值
點擊變數積木
建立一個變數
分別建立個數與邊數
💡重點:
由主程式呼叫畫筆函式(在筆畫函式中將變數設為0初始設定)
進行詢問幾個邊
將邊數變數設定為詢問的答案
再詢問要幾個圖形
將個數變數設定為詢問的答案
執行繪製(重複個數的次數每次呼叫正多邊形函式)