最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch教程:变形记

Scratch 少儿编程 2295浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

在Scratch中,使用坐标进行绘图是一个很常用的功能。在绘制过程中,有时需要对坐标进行变换,以绘制出不同角度或不同大小的形状。

 

坐标变换的演示

 

我们绘制这样一个房子。

变形记

变形记

从程序中可以看到是使用各点的坐标绘制了一个房子。

那么,可以如何对坐标进行变换呢?

 

变形记

例如我们想对这个房子进行变化。比如说,我们想绘制一个大一点或小一点的房子,或者左右镜像,或移动一定的位置,或者转动一个角度,要如何做呢?

当然,我们可以重新计算一下各点的坐标,再重新绘制,但这是一个比较复杂的过程。如何能使用数学方法进行处理呢?

这个问题在数学中称为“坐标变换”。也就是对于原来的坐标,通过一定的变换,得到新的情况下的坐标。今天我们研究在二维坐标系下的变换。

为了实现坐标变换,我们设计一个自定义积木,能够代替原来的“移动到”积木。

变形记

将原来的程序中的移动到都修改为使用自定义积木。

变形记

现在我们就可以通过修改自定义积木进行坐标变换了。

 

变形记
1.尺寸变换

尺寸变换的公式是将x坐标或y坐标乘一个变换的系数。

即xNew=x系数*xOld,  yNew=y系数*yOld。

例如我们这样修改积木

变形记

结果是这样的,可以看出来,由于x和y都增加到原来的1.5倍,房子就变大了。

变形记

大家可以试验一下,如果两个系数不同的话,会在不同的方向上有不同的变化,如果系数大于1,则放大,如果系数小于1,则缩小。

例如:当X系数=1.8,y系数=0.3时,得到如下的图形。

变形记

 

2.位置变换

如果想让房子平移,则可以在X或Y坐标上加减一个数字。

例如:

变形记

变形记

可以看到,整个房子平移了(50,30)。

3.镜像 

如果想对Y轴或X轴镜像的话,可以简单地使用0减去X或Y就可以了。

变形记

变形记

如果不是以x轴或y轴对称的话,可以使用对称轴的x坐标或y坐标值去u减x或y。

4.倾斜 

可以加入xy坐标之间的变换,例如newx=oldx+a*oldy,或newy=oldy+a*oldx得到倾斜的效果。

变形记

得到下面的效果:

变形记

可以看到,得到了一个倾斜的房子。

 

变换的结合

可以将上面几个变换结合起来使用。大家可以试试,能够得到很有趣的结果。

 

总结

1  使用自定义积木,使用Scratch进行了坐标变换。

2  使用坐标变换,可以得到放大缩小、镜像、移动和倾斜的效果。

3  坐标变换的数学基础是矩阵计算,有兴趣的同学可以自己学习研究一下。

 

您必须 登录 才能发表评论!