上一期,我们学习了编程中变量的概念和使用,并做了一个企鹅宝宝找妈妈的动画。
今天我们来学习在 Scratch 中表示位置的方法 —— 坐标系。
坐标系(Coordinate system)与数学和物理有关,有各种各样的坐标系。
我们来看看几种常见的坐标系吧~
一维坐标系 | wikipedia
二维坐标系 | wikipedia
三维坐标系统 | wikipedia
除了以上三种坐标系之外,还有很多其他学科领域的坐标系。
比如我们用经度和纬度表示地球或其他星球上某一点的位置,这就是地理坐标系。
看两个例子:
北纬 40 度线横穿清华大学中央主楼前广场 | google map
嫦娥四号着陆于 “冯·卡门” 撞击坑
坐标是月球南纬 45.5 度,东经 177.6 度
wikipedia
Scratch 中的坐标系是上面说过的第二种,就是二维坐标系,也就是平面坐标系。
打开 Scratch,我们选择 "Xy-grid" 这个舞台背景就一目了然了:
Scratch 的舞台坐标系
我们发现,这就是一个典型的二维坐标系,舞台正中央是横纵坐标的原点,任何一个点都可以用 (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) 画一条红线,组织如下的脚本:
画笔的基本使用
其实跟我们画画是一样的规则和顺序。
我们来逐一解释下画笔中的基本代码块:
这样,点击开始,随着机器人的移动,一条红线从 (0, 0) 移动到了 (100, 100) 的位置。
我们先来写 “吉” 字的第一笔 —— 横:
第一笔的实现
通过脚本我们发现,每写一笔的实现都很简单:只要确定了 起点坐标 和 终点坐标,就可以实现一横或一竖。
于是我们的程序就可以按这个基本步骤实现啦!
这里娃爸给出了 “吉” 字每个笔画的起止点坐标:
笔画 | 起点坐标 | 终点坐标 |
---|---|---|
第一笔:横 | (-74, 49) | (74, 49) |
第二笔:竖 | (0, 80) | (0, 8) |
第三笔:横 | (-63, 8) | (63, 8) |
第四笔:竖 | (-50, -17) | (-50, -77) |
第五笔:横 | (-50, -17) | (50, -77) |
第六笔:竖 | (50, -17) | (50, -77) |
第七笔:横 | (-50, -65) | (50, -65) |
“吉” 字笔画起止坐标表
这样,把所有的笔画写出来,一个机器人绘制的 “吉” 字就写好啦!
新春大吉
Vicky:怎么这么难呀?
没错,虽然这个字写好了,看起来也没什么问题,但我们发现这样一个情况:这段脚本太复杂了,怎么这么长?
其实,说 “难” 或 “复杂” 并不准确,确切的说法是太 “啰嗦” 了,什么意思呢?
我们发现,这个字每一笔的写法都是类似的:
类似的脚本片段
注意紫色的脚本片段,它完成了一个笔画的书写,而其他笔画的书写都是类似的,只是起止点坐标不同。
所以... 这个脚本能简化一下吗?
当然可以的,我们下次课来讲一下吧~
今天我们还知道了 9 个单词的含义: