给孩子的计算思维书:图形化编程及数学素养课(基础篇)
上QQ阅读APP看书,第一时间看更新

2.2 角色的平移

有了坐标系统这个武器,我们就可以精确地描述角色在平面上的运动啦。比如,小猫从原点向左移动300步,再向下移动200步,就到了图中点C的位置,其坐标为(-300,-200)。如果在这个位置再向右移动600步,那就到达了D点,坐标为(300,-200)。

我们发现,角色向右运动多少步,它所到达的新位置的y坐标不变,而x坐标就是在原x坐标的基础上加上运动的步数所得的数。比如上面的例子中,从C点(-300, -200)向右运动600步,新位置的坐标就是:(-300+600, -200)=(300, -200)。对应地,向左运动多少步,新位置的x坐标就要在原来x坐标的基础上减去多少步。类似地,向上或向下运动则保持x坐标不变,y坐标相应地加上或减去运动的步数即可。

小练习

(1)小猫开始位于坐标为(-80, 120)的位置,经过下面的移动后,到达的新位置坐标是多少?

①向左移动50步;

②向上移动40步;

③向右移动70步。

解:

第一种方法,我们可以逐步算出每一次移动后,小猫到达的位置。

向左移动50步后,小猫的坐标为(-80-50, 120)=(-130, 120);

向上移动40步后,小猫的坐标为(-130, 120+40)=(-130, 160);

向右移动70步后,小猫的坐标为(-130+70, 160)=(-60, 160)。

第二种方法,我们直接考虑小猫经过水平和垂直方向的移动后最终到达的位置。小猫最终位置的x坐标为-80-50+70=-60,y坐标为120+40=160,因此,最后新位置的坐标为(-60, 160)。

(2)小猫开始位于坐标为(180,-30)的位置,现在要移动到坐标为(-200,50)的位置,请问小猫可以怎么移动才能到达上述目标位置?

解:

-200-180=-380,50-(-30)=80

这里,负数-380表示小猫要向左移动,而正数80表示小猫要向上移动。所以,小猫从原来的位置向左移动380步,向上移动80步,就可以到达新的位置。

好了,讲了这么多坐标和平移的知识,我们赶紧来编写我们的第一个程序,让小猫动起来吧。

我们让小猫从原点开始向右移动,每次向右走20步,然后停顿1秒,一共走4次后停下。

我们从运动类积木中找到这两个积木,然后在控制类积木中找到积木,将它们拖曳到代码区,将这一积木的10改成20,按下面上图中的方式搭好积木。

如果我们想观察一下执行上面的代码后小猫所处位置的x坐标,只要在最后增加下面这个外观类积木就行。

单击小绿旗后,小猫从原点(0,0)向右移动了80步,并说出当前的x坐标为80。