前言
上一期,我們學習了編程中變量的概念和使用,並做了一個企鵝寶寶找媽媽的動畫。
今天我們來學習在 Scratch 中表示位置的方法 —— 坐標系。
什麼是坐標系?
坐標系(Coordinate system)與數學和物理有關,有各種各樣的坐標系。
我們來看看幾種常見的坐標系吧~
一維坐標系,就是一條直線,是最簡單的坐標系統,也叫數軸。0 是坐標的起點,無論什麼物體在這條直線上的任何位置,都可以用它所在點的數值來表示:
二維坐標系,就是一個平面,是最為常見的一種坐標系統,也叫直角坐標系或笛卡爾坐標系。0 依然的坐標的起點,不同的是,從 0 開始有兩條直線交叉穿過,左右方向是橫坐標,也叫 x 坐標,上下方向是縱坐標,也叫 y 坐標。無論什麼物體位於這個平面上,都可以用它所處位置的橫縱坐標來表示:
三維坐標系,表示一個立體的空間。0 還是坐標的起點,不同的是,從 0 開始有三條直線交叉穿過,橫坐標和縱坐標與二維坐標系是一樣的,從 0 開始上下的坐標為 Z 軸坐標。空間中的任何一個物體都可以用它所在位置的 x,y,z 坐標值來表示:
除了以上三種坐標系之外,還有很多其他學科領域的坐標系。
比如我們用經度和緯度表示地球或其他星球上某一點的位置,這就是地理坐標系。
看兩個例子:
google map
Scratch 中的坐標系
Scratch 中的坐標系是上面說過的第二種,就是二維坐標系,也就是平面坐標系。
打開 Scratch,我們選擇 "Xy-grid" 這個舞臺背景就一目了然了:
我們發現,這就是一個典型的二維坐標系,舞臺正中央是橫縱坐標的原點,任何一個點都可以用 (x, y) 這種形式的坐標表示出來。
我們來做個簡單的演示。
放一個角色到舞臺上,我們選擇了機器人:
這裡,我們在角色選好之後,調整了它的大小。重點是我們還通過 x 和 y 的設置,讓角色回到了坐標系的原點。
下面,我們設定腳本,讓動畫開始時機器人移動到 (100, 100) 這個點:
這個腳本中,我們拖動 「運動」 中的 「在 1 秒內滑行到 x: 100 y: 100 glide 1 second to x: 100 y:100」 放在開始的下方。點擊開始,機器人就在 3 秒的時間內緩緩平移到了坐標 (100, 100) 的位置。
很簡單吧~
好啦,我們開始做一個與坐標系有關的小動畫。
程序的邏輯
這個程序的邏輯很簡單,我們要用機器人移動的軌跡,在坐標系上寫一個漢字:「吉」。
選擇這個字的原因,一個是表示新春大吉~另外這個字很簡單,橫平豎直,很好寫。
程序的結構
我們先來寫 「吉」 字的第一筆,首先做下初始的準備。
寫字用的 「畫筆」 在 Scratch 中屬於 「擴展 extension」,點擊 「添加擴展 Add Extension」 選擇 「畫筆 Pen」,一套畫筆代碼組件就出現了:
我們讓機器人從 (0, 0) 到 (100, 100) 畫一條紅線,組織如下的腳本:
我們來逐一解釋下畫筆中的基本代碼塊:
全部清除 erase all:開始後,清除以往的畫筆痕跡。將筆的粗細設為 set pen size to:設置畫筆的粗細,值越大就越粗。將筆的顏色設為 set pen color to:設置畫筆的顏色,在調色板中隨意設置。落筆 pen down:開始繪製前,先落筆。抬筆 pen up:繪製結束後,要抬筆。其實跟我們畫畫是一樣的規則和順序。
這樣,點擊開始,隨著機器人的移動,一條紅線從 (0, 0) 移動到了 (100, 100) 的位置。
程序的實現
我們先來寫 「吉」 字的第一筆 —— 橫:
通過腳本我們發現,每寫一筆的實現都很簡單:只要確定了 起點坐標 和 終點坐標,就可以實現一橫或一豎。
於是我們的程序就可以按這個基本步驟實現啦!
這裡娃爸給出了 「吉」 字每個筆畫的起止點坐標:
這樣,把所有的筆畫寫出來,一個機器人繪製的 「吉」 字就寫好啦!
後續的思考
Vicky:怎麼這麼難呀?
沒錯,雖然這個字寫好了,看起來也沒什麼問題,但我們發現這樣一個情況:這段腳本太複雜了,怎麼這麼長?
其實,說 「難」 或 「複雜」 並不準確,確切的說法是太 「囉嗦」 了,什麼意思呢?
我們發現,這個字每一筆的寫法都是類似的:
注意紫色的腳本片段,它完成了一個筆畫的書寫,而其他筆畫的書寫都是類似的,只是起止點坐標不同。
所以... 這個腳本能簡化一下嗎?
當然可以的,我們下次課來講一下吧~
今天我們還知道了 9 個單詞的含義:
coordinate 坐標system 系統glide 滑動extension 擴展pen 畫筆erase 擦除all 所有的down 向下up 向上「 和 Vicky 一起學習 Scratch 」
通過每天一個好玩的 Scratch 項目,孩子會一步步的了解現代編程的基礎原理,進而具備計算機科學的基本思維方式。
下期見!