带孩子玩Scratch编程:坐标(下)

更多的示例程序

在第1节,我们已经编写过几个移动小猫位置并画出它行走轨迹的程序。其中小朋友最难理解的,是利用函数画出椭圆形的程序。但如果你觉得还挺奇妙,不妨试试以下两段更复杂的函数,看看这回小猫的行走轨迹是什么形状:

示例程序9:蜗牛壳形的轨迹

示例程序10:母亲节礼物

下面这段程序还需要先新建立一个变量“v2”,方法我们在第30页介绍过。

示例程序11:具有三维视觉效果的地球、土星围绕太阳转动

此程序需要建立3个角色——Sun、Earth、Planet2;建立两个变量a1、a2。

太阳Sun的程序:

“将大小设为(  )”积木在“外观”栏目中。

地球Earth的程序:

注意,地球的程序中有两组彼此独立的代码段。

土星Planet2的程序:

注意,土星的公式与地球很像,但是使用的变量是a2哦,括号里的数字也有一些区别。

这段程序是目前你搭建的最长的程序了,如果运行正确,看到地球和土星绕太阳转动,是不是很有成就感呢。上述程序考虑了近大远小的透视效应,以及行星运动的开普勒第三定律——行星的轨道离太阳越远,它绕太阳转一圈花的时间就越长。因此,这个程序可以算是你的第一个物理仿真程序。以后你学习天文和物理时,还可以看看这段程序哦。

示例程序12:薛定谔的小猫

这个程序是一个小游戏,点击绿旗子后,屏幕上的11只小猫开始转动,同时,有一道道的“虚实波”从屏幕左下方向右上方划过。这代表小猫在量子世界中,没有真实的确定状态。只有在我们按下空格键进行观测时,小猫才确定地出现在11个可能位置中的一个地方。如果是在左边,它就逃过一劫;如果在右边,就表示它被骷髅毒害了。

在这个程序中,所有角色的位置都是不变的,但是我们通过程序控制每个角色的转角和虚实,也营造了一种动态效果——“波动”。在以前的程序里,我们的角色都是拖着画笔移动,画出运动轨迹。现在没有角色在移动,但是看起来“虚实波”也是在传播。波动也是一种很重要的物理现象,这是你的第一个波动力学仿真程序。

在程序中,我们不再像以前那样,用运动公式设定角色每时每刻的坐标位置,而是把角色的坐标和计时器输入波动公式,计算出每个角色每时每刻的方向和虚实。

本例程需要建立4个变量,分别是:ω、px、py和id。(如果不会输入ω也可以输入别的字母代替,如w)。

保留默认的小猫角色,并插入一个骷髅(Skeleton)角色,放到屏幕右边,如下图所示:

然后,在角色栏里点击骷髅的图标,编辑骷髅的程序:

其中,“广播(observe)并等待”积木是在“广播(消息1)并等待”的基础上,点“消息1”右侧的下拉箭头,选择“新消息”之后,再输入“observe”而制作出的新的消息名称。

也就是说,这段程序用到了2种消息。“消息1”是我们在程序开始后,每隔0.05秒就广播一次的,它的作用是触发小猫们展现“波动”效果的程序。

“observe”消息是按空格结束程序后再广播的,它的作用是对所有角色宣布观测结果。

然后编辑小猫的程序,在角色栏中点击小猫,编辑它的代码。可以看到,小猫程序里有两段分别处理这2种消息的监听器:

这段程序中,新出现的积木比较多,“如果<  >那么…否则…”积木在“控制”栏目中。“(  )=(  )”、“(  )>(  )”积木在“运算”栏目中,“将虚像▼特性设为(  )”积木在“外观”栏目中,是“将颜色▼特性设为(  )”的积木,点下拉箭头选择“虚像”而修改来的。

以上程序编好后,可以先试运行一下,看看小猫是否能旋转起来且变化虚实。测试一下按空格键之后,转动是否结束,小猫是否说话。

测试成功后,我们就可以再复制10个小猫出来,在角色栏的小猫上点鼠标右键,然后选择“复制”:

每复制1次,就会生成一个一模一样的小猫副本,而且这些副本也自动具有我们刚才给小猫编的代码。复制10次后,共有11只小猫,我们按下图的方式排列:

这样就大功告成了,点击绿色旗子运行吧。

带孩子玩Scratch编程:坐标(中)

“距离”是一个小朋友并不陌生的概念。我们在生活中经常说一个地方距离家远或距离家近,一般来说,去远的地方花的时间长,去近的地方花的时间短。

在几何学中,距离一般是指直线距离,也就是两点之间直线段的长度。比如想知道你家到幼儿园操场的距离,如果能用一根风筝线一头系在你家窗口,另一头拉到幼儿园操场上,用力把风筝线绷紧拉直,然后把两端多余的线剪掉,剩下中间这段绷直的风筝线,它的长度就是你家到幼儿园操场的直线距离。它比你坐电梯下楼,经过小区道路、大门走到幼儿园的步行距离肯定更短。

下面,我们来看一些距离的数字,感受一下远近的差异。注意,随着距离变大,距离的单位也在变化。我们按越来越大的顺序来排列:

晚上睡觉时你和妈妈的距离:1米;
一辆中型公交车前后门之间的距离:10米
地铁站台的长度:100米
相邻两座地铁站之间的距离:1公里 = 10个100米

天安门到东、西五环的距离:10公里
北京到天津的距离:100公里
北京到上海的距离:1000公里
北京到美国洛杉矶的距离:10000公里(1万公里)

地球到月球的距离:38万公里
地球到太阳的距离:1.5亿公里(15000万公里)
土星到太阳的距离:14亿公里
海王星到太阳的距离:45亿公里

以光的速度走1年的距离:1光年 = 94607亿公里
太阳到比邻星的距离:4光年
太阳到猎户座大星云的距离:500光年

太阳到银河系中心的距离:2万光年(20000光年)
太阳到仙女座星系的距离:220万光年

LIGO引力波天文台2017年探测到的一次黑洞合并事件,其碰撞地点到我们地球的距离:90亿光年(900000万光年)

目前能观测到的宇宙最远处距地球:130亿光年(你和妈妈睡觉时距离的100000000000000000000000000倍)

要知道两个点之间的距离,需要用到测距工具。如直尺、卷尺、测距仪、全站仪、GPS卫星等。但如果我们有了一个很好的坐标系,又知道两个位置的坐标值,距离其实也可以计算出来。

例如,在Scratch中,可以用以下公式计算两个卡通角色之间的距离:

上边公式中的“Skeleton的x坐标”和“Skeleton的y坐标”是另一个角色——骷髅(Skeleton)的横坐标和纵坐标。关于怎么给画布上增加一只骷髅,并找到它的x、y坐标,可以在后面的例程中学到。我们先说说这段长长的公式,它叫做毕达哥拉斯定理,也叫勾股定理。

通过刚才的练习题【原书中有一个练习】我们知道,如果两个点纵坐标差3、横坐标差4,它们的距离就是5。纵坐标差6、横坐标差8,它们的距离就是10。2000多年前的古希腊数学家毕达哥拉斯从中发现一个规律,就是:

5 x 5   = 3 x 3  +  4 x 4  = 25
10 x 10 = 6 x 6  +  8 x 8  = 100
斜边长度 x 斜边长度 = 水平距离 x 水平距离 + 竖向距离 x 竖向距离

知道(斜边长度 x 斜边长度)的乘积是多少,再使用一个平方根函数,就能知道写斜边长度本身是多少。这就是上页的笛卡尔坐标系“距离公式”的由来。

在Scratch中,由于距离是经常用到的概念,所以系统提供了一个更快捷的积木,方便你获取两个角色之间的距离。这个距离积木就在“侦测”栏目中,原型是“到(鼠标指针)的距离”。你可以把圆括号里的“鼠标指针”改成屏幕上的任何一个角色。

这样查询2个角色的距离就简单多了。实际上是Scratch在后台帮你用2个坐标和毕达哥拉斯定理进行了计算。

除了直角坐标系之外,在后面你还会看到一些其他类型的坐标系,每种坐标系有自己的距离、夹角计算公式。有些很复杂,留到小朋友们在上学后学习吧。

现在我们看看如何在Scratch中创建第2个角色,并利用“距离”积木编写一个小游戏。

示例程序6:躲骷髅的猫,看你能不能撑20秒

小猫有100滴血(blood变量),它会跟着你的鼠标指针移动,骷髅在屏幕上随机漂移,如果漂到小猫身边、距离不足一个身长的范围内,小猫就减25滴血,同时骷髅长大20。看看最终你能撑几秒。

首先在Scratch的右下角找到添加角色的按钮。

在弹出的窗口中选择骷髅Skeleton。

然后,在“变量”栏目里,点击“创建一个变量”。

新变量名下面写入“blood”,下边有2个选项,我们选择“适用于所有角色”,这表明小猫的程序里也可以用到这个变量。

再用同样方法建立一个“Time”。

在角色栏里点一下骷髅,这样代码窗口就切换为骷髅的程序。按下图建立骷髅的程序。

骷髅的程序主要分2条流线。

第一条流线是每1秒钟都做以下4件事:(1)随机换一个新位置;(2)发出沙沙声;(3)变换一个造型姿势;(4)更新界面上显示的秒数。

第二条流线是每时每刻都检查与小猫的距离,如果不到一个身长(大小)了,就触发消息1,并将自己的身长(大小)再增大20。

这2条流线各有1段独立的代码,都以“当⚑被点击”积木开始,说明当点击绿色旗子后,会同时执行这2段代码。在上边的代码中,你不熟悉的积木可能不少:“播放声音(  )”在“声音”栏目中;“下一个造型”、“大小”、“将大小增加(  )”都在“外观”栏目中;“将[Time▼]设为(  )”在“变量”栏目中,原型是“将[我的变量▼]设为(  )”,需要点▼选择我们刚才创建的变量Time;“四舍五入(  )”和“(  )<(  )”在“运算”栏目中;“如果<   >那么”在“控制”栏目中,它是一个条件判断积木,如果尖括号里的条件成立,将会执行积木里包着的内容,不成立就直接跳过,执行后面的积木;“广播(消息1)并等待”在“事件”栏目中。

然后在角色栏里点一下小猫,切换为小猫程序的代码窗口。搭起以下程序:

“当接收到(消息1)”积木在“事件”里,这块积木也叫“消息1的监听器”。当骷髅的程序执行到“广播(消息1)并等待”时,由于小猫的程序里有“消息1的监听器”,所以小猫就会立即执行“监听器”积木下方的程序——惨叫一声、减25滴血、身上颜色改变。小猫这段程序执行完之后,骷髅的程序结束等待,继续往下执行。

“清除图形特效”、“将[颜色▼]特效增加(  )”、“说(  )(2)秒”都在“外观”栏目中;“鼠标的x坐标”、“鼠标的y坐标”在“侦测”栏目中;“停止[全部脚本▼]”在“控制”栏目中,它是在小猫的血不足10之后被调用,用来结束本次程序的运行。

检查一遍代码,运行游戏,看看你和爸爸谁撑的时间长吧。

—————-

“方向”也是一个生活中常用的概念,表示方向的词有“上下左右、前后、东南西北、里外”等等,这些小朋友都不陌生。在几何学里,方向是从空间中的一个基准点,向远处延伸的路线。我们常用箭头来表示方向,比如公园里的指路牌,户外用的指南针等等。在表示方向时,箭头、指针的长短不重要,只要它们延伸后是相同的路线,就是同一个方向。

前几节我们已经知道了,位置是可以用数字表示的。同样,方向也可以用数字表示,这会比只说“东南西北”更加精确。我们还是先不纠缠概念,直接看实例:在Scratch里,角色的方向就是用数字表示的。如上图所示,你可以找到调整角色方向的转盘,拖动蓝色箭头,角色随之转向,同时,显示在方向括号内的数字也跟着变化了。

在上边这个Scratch的例子里,如果箭头竖直向上指,方向值是0;随着箭头顺时针转动,方向值会变大,最大可以增大到350多。转过一圈之后,箭头回到竖直向上指的方向,方向值就又变回0。

这有点像钟表的时针,时针是从12点顺时针转,经过1、2、3点…最后回到12点。所以有些飞行员在无线电联络时,会使用几点钟代表一个方位。比如乐迪在天空中通过无线电呼叫机场,询问机场在哪里,塔台可能这样回答:“乐迪,机场在你的11点钟方向”,其实就是说,机场在前方稍偏左一些的方位。

所以我们看到,Scratch的从0-359的方向值,和飞行员使用的1点钟-12点钟方向,都是用数字表示方向的方法,区别只是二者精度不太一样。Scratch的这种方向值,实际是箭头从竖直向上方位起算、顺时针转动的“转角”。转角的单位是°,转动一整圈是360°,它和0°是同一个方向。转动半圈是180°,东、南、西、北四个方位之间转角相差90°,下图给出了一些典型的转角大小。

明白了方向值的意义之后,下面,我们一起来用Scratch做一个能转动的钟表吧。

示例程序7:转动的钟表

首先,创建一个空白项目,并在“角色”栏里删除小猫。

然后,添加一个“Pufferfish”角色(圆圆的河豚),拿它当作我们的表盘。在角色栏上方,把这个角色的x、y都设为0,大小设为200。

再添加一个“Arrow”角色,作为较短的时针,x设为25,y设为0;

最后添加一个“Wand”角色,作为较长的分针,x设为0,y设为35。三个角色添加完成后,效果如下图所示:

按下图搭建河豚的程序,“按下(空格)键?”在“侦测”栏目里。

另外,我们这个程序将使用到一个比较特殊的变量:在“侦测”栏目里,有一个叫“计时器”的圆块,它也是一个变量,给它的勾挑上,可以发现这个“计时器”变量的数值是在动态增大的。这个数值其实是程序已运行的秒数,每点一次绿旗子“⚑”启动程序,计时器会自动归零。它的数字是计算机系统告诉我们的,所以这种变量也叫“系统变量”。

之后,拼出魔棒“Wand”角色、箭头“Arrow”角色的程序:

在这个程序中,“面向( )”块在“运动”栏目中,它就是修改角色旋转方向值的语句。点击绿旗子“⚑”,看看你的表是不是快速旋转起来了呢。

提高:如果你想让表转的慢一些,或者快一些,可以调整所有“计时器*( )”括弧里的数字,数字越大表转得越快。但为了让分针转1圈,时针转1个小时,需要让“魔棒”程序里的这个数字是“箭头”程序里数字的12倍。如12:1、24:2、30:2.5、48:4、60:5都是可以的。

明白了方向值的意义之后,我们再介绍一下“角度”。

先来说什么是“角”,一个顶点发出两条射线,就形成了一个角。上图中的三角形有3个角,分别用蓝色、绿色和红色画了出来。可以看到,角的形状像一个夹子,因此我们有时也说两条线的“夹角”。

那么“角度”是什么呢,角度就是角张开的大小。如果我们知道顶点发出的这两条射线的方向值,用大数减去小数,得到的就是这个角的角度,就像上图那样。

但是现实世界不像Scratch,确定每条边的方向值比测角更啰嗦,在现实中测量角度只需要用一个量角器就可以了。

如果你有量角器的话,将量角器底边中心对准角的顶点,让底边的0°方向对齐角的一条边,看另一条边的刻度是几,角度就是多少。

另外,前一节课我们提到过,在“好”的坐标系中,只要知道图形的坐标值,距离和夹角是可以用公式计算出来的。在Scratch的坐标系中计算距离的公式,我们已经通过例程6接触过了。那么如何通过坐标值计算夹角,似乎也应该有一个例程。不过这个例程比较复杂,用到2次距离计算公式,1次内积公式,1个反三角函数。这么复杂的公式对小朋友来说难度太大,因此就不详细介绍它背后的数学含义了。只是为了证明我们没有敷衍你,在下面贴出例程8,该程序依据坐标值计算地球——太阳——土星这3个角色的夹角。

示例程序8:用坐标计算夹角的公式

其中,“(Earth▼)的[x坐标▼]”等积木在“侦测”栏目中,原型是“(舞台▼)的[背景编号▼]”,它是获取另外一个角色状态信息的重要途径。

————-

更多种类的坐标系

第一节提到过,除了之前我们一直在用的直角坐标系之外,还有一些其他类型的坐标系,也是人们常用的好坐标系。在学习了距离、方向和角度之后,这节我们就可以介绍2种特殊的坐标系。

上图是一个常见的雷达图,图中A~F是雷达探测到的6架飞机,雷达基站在图的中心处。雷达通过无线电扫描,能够测量出它到每架飞机的距离,以及每架飞机相对它的方向。这两个数字——距离和方向,也能组成一个坐标系。我们把这类坐标系称为“极坐标系”。

上图中,飞机A距离雷达100公里,在雷达的135°方向,因此坐标可以写为(100,135°)。在雷达图上,与A在同一个圆环上的所有点,如D点,都是距离雷达站100公里。它内侧那个圆环,也就是C、F点所在的圆,距离雷达站是50公里。外侧那个大圆环,也就是B、E点所在的圆,距离雷达站是150公里。这些红色的同心圆实际上是距离的刻度线。

蓝色的放射线更容易理解,它们是方向的刻度线。

最后我们再介绍一种“地理坐标系”,它是我们在旅行、导航时可能会接触到的坐标系。下图是Google Earth中显示网格的地球:

地球上的这种网格,术语叫“经纬线”,竖线叫做经线,横线叫做纬线。每一根经线、纬线都有度数值,称为经度、纬度。例如横穿北京的横线,是北纬40°线,东京所在的竖线,是东经140°线。用一个城市所在经线的度数,和所在纬线的度数,也可以组合成一个坐标,这就是经纬坐标。北京的纬度是北纬40°,经度是东经116°,因此坐标可以写为(N 40°,E 116°)。找一个地球仪,或者打开Google Earth,看看你去过的城市经纬坐标是多少吧。

如果你经常坐车,对GPS导航应该不陌生。GPS模块就是通过测量它与太空中30多颗导航卫星之间的距离,来计算你在地球上的地理坐标,从而知道你在哪、该走哪条路的。而且GPS使用的坐标精度很高,它算出你所在位置的经度、纬度不只是一个整数,还有小数点后面的4-5位小数。例如天坛圜丘中心的经纬坐标是(N 39.87558°,E 116.40695°),这样高的精度就能让定位准确到几米的范围内。

带孩子玩Scratch编程:坐标(上)

本文节选自未出版的拙作《给孩子讲数学与编程》,以示例程序为主,略去了相关概念和知识的讲解,家长可自行补充。

“坐标”是用数字代表某个人、某件东西所在的位置;而且,数字的大小要能反映位置的远近。

在教室里,老师有时候会把椅子摆成整齐的排列,就像下边图片这样。在这张图中,每把椅子上都有两个数字,请你看看有什么规律。

Steven站在了一把椅子上,挡住了2个数字。请小朋友猜一猜,Steven踩的那把椅子,靠背上被挡住的数字应该是几呢? Steven后排角落里的椅子,被挡住的数字又该是几?

用“第几列、第几排”代表椅子在阵列里的位置,就是一种坐标。我们把这2个数字写在一个圆括号里,作为一个“坐标位置”:

32

它的意思是:第3列 第2排 的那个位置

对于所有平面状的东西,例如地面、桌面、墙面、天花板、电脑屏幕等等,我们都可以在平面上打出网格,然后以第几列、第几行的方式表示每个格子的坐标。

例如在上图中,我们在桌面上打出了网格线,把桌面分成了16列、8行。但在这张图中,我们把坐标原点O画在了桌面中间,而不是左下角。这样,在桌面的左半边和下半边,会出现用负数表示的行、列。负数,就是比0还小的数。例如商场的地下车库,比室外地面还低,因此,我们把地下室叫 -1层、-2层。冬天的气温比0度还低,比0度低5度叫 -5度,比0度低10度叫 -10度。

原点所在的行,就是那些粉色的格子,我们叫它横坐标轴,上面写着表示那是“第几列”的数字,也就是横坐标。

原点所在的列,那些蓝色的格子,叫做纵坐标轴,上面的数字表示那是第几行,也叫纵坐标。

在上图中,我们看到杯子在原点右侧第3列,在原点上方第1行,因此,杯子的坐标为(3,1)。

现在我们要学习激动人心的编程了。通过编程,我们可以让电脑或手机屏幕上显示出我们设计好的动态效果,也可以让机器人完成指定的任务。但前提是,你需要了解电脑、手机和机器人采用的坐标系。

上图是一个分辨率低得夸张的电脑屏幕,在这个屏幕上,图像和文字都像是用乐高方块拼成的。每一个方块,我们叫它一个“像素”。这些屏幕像素可以根据程序改变色彩和亮度,组成要显示的图像和文字。在上图中,屏幕上的像素共有32列、16行,总计512个。

真正的电脑屏幕、手机屏幕,像素要细腻得多,甚至比针尖还细小。因此,我们很难用肉眼看出手机屏幕上的像素方格。

现在,让我们打开计算机,登陆https://scratch.mit.edu/ 网站,看看Scratch里的坐标吧。

请你爸爸妈妈协助,帮助你根据网站提示创建一个新的空白项目。

在Scratch的代码栏中,从“事件”栏目里找到“当⚑被点击”积木,然后从“运动”栏里找到“将x坐标设为( )”、“将y坐标设为( )”, 拼出如下的程序:

示例程序1:设置角色的位置

改一改括号里的数字,然后点击运行窗口左上角的绿色旗子“⚑”,看看小猫移动到哪里去了。

在Scratch中,实际上采用的是这样一个坐标系:

原点位于窗口正中心,横坐标从-240到240,纵坐标从-180到180。这比我们之前接触的坐标系又大了很多倍,已经出现了上百的数值。同时,屏幕上也不再显示网格线了,即使显示,也会密得让你根本看不清楚。就连上图的坐标轴,在程序里也是隐身的。因此,从现在开始,你得适应在脑子里想象坐标和位置的对应关系了。

为了帮助你熟悉每个位置的坐标是多少,可以在“运动”栏目的最后,找到“x坐标”、“y坐标”,把前面的勾打上。这样在程序窗口的左上方,就会显示出来小猫当前位置的坐标值了。“x坐标”也就是我们说的横坐标,“y坐标”就是纵坐标。拖拽小猫,看看每个位置的坐标是多少:)

下面我们来尝试拼出这么一个程序:

示例程序2:让角色动起来

这里需要用到三个新的积木:
一个是黄色的“控制”栏目里的循环积木,“重复执行(  )次”;
一个是绿色的“运算”栏目里的减法积木,“(  ) – (  )”;
还有一个是“运算”栏目里的函数积木,“绝对值▼(  )”。

其余蓝色的积木都可以在之前的“运动”栏目里找到,注意“将x坐标增加(  )”和“将x坐标设为(  )”是不同的积木,别弄混了哦。可以先把用到的积木都散拖到代码窗口中,然后照图拼好嵌套关系——把刚才打过勾的那个“x坐标”小圆块嵌到“绝对值▼(  )”积木的空白括号里;再把“绝对值▼(x坐标)”嵌入减法“(  ) – (  )”的左侧空白括号中;然后照图连接积木顺序;最后,按上图修改剩余括号内的数字。点击运行窗口左上角的绿色旗子“⚑”,看看是什么效果哦。

我们还可以使用Scratch的画笔扩展,把小猫的轨迹画下来。在Scratch左下角点击“添加扩展”按钮,在弹出的窗口中选择画笔:

然后,你的Scratch将出现“画笔”栏目,可以仿照下图中的例程3画出小猫运动的轨迹:

示例程序3:画出角色的轨迹

运行结果:

示例程序4:画一个椭圆

这个例程用到了“变量”栏目。同时,对于函数积木,点击“绝对值”右侧的下拉键头,将“绝对值”替换为“cos”、“sin”。

至于“绝对值”、“sin”、“cos”函数到底是什么意思,现在小朋友暂时不需要深究。在作者小的时候,也是先从键入根本不懂的BASIC语句开始学习编程的。你只需要知道并熟悉怎样按例程搭好Scratch积木,运行后得到了跟书上一样的效果,就非常棒了。然后,你可以再改一改例程中的参数,看看程序运行结果有什么变化,这个过程也很有意思,你能借此学得更深刻。例如,试试把例程4“将y坐标设为100 * (sin(我的变量))”中的100改为“x坐标”,看看能得到什么曲线。

示例程序5:自定路线绘制几何图形

在刚才的两个例程中,我们都用到了函数来绘制图形。如果小朋友想创作一个自己的画图程序,可能运用函数有点困难。因此,现在我们来看一个容易掌握的绘图程序。

例如,如果想让小猫画出一个五角星,那最好先自己在纸上画一遍,看看五角星应该有几笔,分别是从哪到哪。画五角星可以用5笔来完成,如下图所示,依次从第1点画到第2、3、4、5点,最后再回到第1点。

在Scratch中,我们让代码栏显示“运动”栏目里的积木。这时用鼠标挪动小猫,可以发现上图中用红色标出的2块“移到x( )y( )”的积木,括号中的坐标值会自动改变。小猫挪到哪,括号里就会变成哪个点的坐标值。利用这个特点,我们可以很容易地把自定的路径点位输入到程序中。

我们先把小猫挪到设想中的第1点,按下图拼出前4个积木。然后把“运动”栏里的“移到x( )y( )”积木拖到程序中,不需要修改括号里的数字。这样,程序执行到这时,小猫就会自动来到这个第1点。

随后接一块“画笔”栏目中的“落笔”积木。下一步,把小猫挪到设想中的第2点,然后接“运动”栏里的“在(1)秒内滑行到x( )y( )”:

同样,这块积木括号里的数值也不用改,程序执行到这时,小猫会滑行到这个第2点。以此类推,拖出滑到第3、4、5点的积木:

最后把小猫拖回第1点,再接最后一块 “在(1)秒内滑行到x( )y( )”,结尾接“画笔”栏目中的“抬笔”积木,这个程序就完成了。

运行后效果如下:

你可以用这个办法,画出任何直线组成的图形。现在自己试试吧。