2022年5月17日 星期二

如何於SCRATCH內繪畫圖案

教學影片: https://youtu.be/VyJw9LbZBvk

 透過不同的指令,我們可以使用電腦繪畫千變萬化的圖案。

首先要做的是,使用Scratch 3.0時要先新增畫筆的擴充模組。(如何新增Scratch擴充模組?)

 

先由簡單的開始。以下是繪畫正方形的例子:


以上的是最基本需要的程式磚塊。

磚塊程式Blocky code

說明

按綠色旗標籤 後,啟動標籤之下的程式

落筆,可以開始繪畫。

移動100(其實是100像素),由於上方已落筆,因此移動的軌跡會被描繪出來。

留意,如沒有 指令的話,貓貓任何位置的改變皆會留下軌跡。

向右轉90度。

重複向前行100步,然後向右轉90度,重複多三次,共4次,便成正方形。

但問題是:

1. 如何控制正方形的繪畫方向? (以上的方向是如何決定的?)

2. 重複執行程式,如把貓貓移動了位置的話,會發現之前的正方形沒有消失,那如何清除之前的圖形?

3. 如果要繪畫十二邊形的話,那豈不是要複製很多相同的磚塊程式,這樣很大機會複製錯誤。有沒有更好的方法?

 

以下是改良版: 使用迴圈處理。

 

磚塊程式Blocky code

說明

程式開始後,先清除畫板上所有東西

指定貓貓開始時的位置。

留意,畫板的大小是480x3600,0是位於正中央的位置。

設定開始時貓貓面向的方向,90度是向正右。可調較不同角度的。

使用這計算次數的repeat迴圈,填上4,代表repeat迴圈內的指令要重複執行4次。

 

如果要繪畫其他形狀,要修改甚麼位置? 例如要繪畫

(1)   三角形

(2)   五邊形

(3)   六邊形

(4)   十二邊形

(5)   圓形

提示: 修改轉動的角度及重複執行的次數。留意,繪畫十二邊形及圓形時,因太大,超出畫板範圍,要修改移動步數才成。

 

如果要連續繪畫多個形狀,哪如何處理? 例如以下,繪畫正方形後,再繪畫三角形,最後六邊形。

當然可以像以上的做法,但似乎很累贅,亦不易看到程式碼的作用。有沒有更清晰的做法?

使用自定函數(self-defined function)便可使程式更易閱讀,亦方便執行重複的程式碼。例如以下例子,是否很清晰便可以看到程式是做甚麼的?

 


進階程式設計: 使用雙迴圈。

配合雙迴圈,可以有更多的變化,如以下示例:



?為甚麼沒有任何變化?
當然沒有甚麼變化,因為完成內迴圈後,沒有進行任何改變,祇是再重複執行4次而已。其實實際上程式執行還是有分別的,以上程式其實總共繪畫了4次正方形,不過因為是相同位置,結果不明顯而已。但執行時還是可以看到貓貓轉了4個圈。

試試於內迴圈外加一些指令,例如改變一下以下參數:

1.      角度

2.      位置

3.      顏色

4.      畫筆粗幼

5.      外迴圈次數

 

以下是一個例子,祇是每次繪畫正方形後,貓貓向右轉15度,外迴圈次數改成100,便可得出以下圖案。

有沒有覺得很奇怪? 以上的圖案,怎麼看也沒有100個正方形! (但貓貓是真的轉了100次,繪畫了100個正方形) 你看到是甚麼原因嗎?

修改了一個參數,另外隱藏了貓貓,便可得出以下圖案。

 

 

作業(1)

試試看,如何輸出以下的畫面: (留意,每次正方形輸出的位置是隨機的。

沒有留言:

張貼留言