在上一期《用Scratch画太极图》中,我们介绍了使用参数方程绘制太极图的方法,有的网友反应比较难懂。那么,今天小海豚科学馆再介绍一种简单的不使用参数方程的绘制太极图的方法。

一、画出太极图的S形曲线

如下图所示,这个S形曲线由两个半圆构成。

我们可以使用“右转…度”积木和“移到…步”积木控制画笔移动并画出这个S形曲线。脚本清单如下,可以看到画法是比较简单的。每次右转1度,并移动1步,如此重复次,就可以画出一个半圆;之后调转方向,每次左转1度,并移到1步,如此重复次,画出另一个半圆。

二、画出太极图右侧外围的半圆,使S形曲线封闭,这样就画出了一条太极鱼。如下图所示。

三、为太极鱼填充黑色,这是画太极图的关键部分。

为了实现填充颜色的功能,我们需要创建两个角色。角色“S线”用于绘制太极图的S形曲线,角色“画圆”用于绘制太极图的圆形(一个大圆和两个小圆),并负责将其中一条太极鱼填充为黑色。将上面的脚本分别放到各自的角色中。

在角色“S线”的脚本中,我们增加一个“广播[画圆]”消息的积木,这样在开始画S形曲线的时候,同时将太极鱼外围封闭起来。

在角色“画圆”的脚本中,接收“画圆”消息,画出半个圆,将太极鱼封闭。脚本清单如下。

到这里,点击绿旗运行项目,我们将会看到太极图中一条阴阳鱼的绘制过程。

由于在两个角色的脚本中的“移动…步”积木的参数不同,导致外围的半圆画得太快,不利于后面的填充。所以,我们改进一下,在角色“画圆”的脚本中加入下面一行指令积木,把加在“移动2步”积木之后即可。

这样一样,将角色“画圆”的y坐标变化速度快过角色“S线”时,就会等一等,让角色“S线”赶上来。

为了方便观察,我们将两个角色的造型分别用蓝色点和红色点展现出来。

在绘制过程中,我们将红色点和蓝色点使用黑色线连接起来,就能实现将一条太极鱼填充为黑色的效果。

在角色“S线”的脚本中,每移到一步,就使用“广播…并等待”积木发送一条“画线”消息。如下图所示,将这个积木加入到脚本中。

在角色“画圆”的脚本中,增加一个接收“画线”消息的处理脚本,并实现从“画圆”角色的当前位置到“S线”角色的所在位置的画出一条黑色线。画线的脚本如下。

画线时,先保存“画圆”角色的当前坐标和方向,然后画出直线,之后再把“画圆”角色的坐标和方向恢复到先前的状态。

单击绿旗运行项目,我们将可以看到一条黑色的太极鱼画出来了。

之后,我让“画圆”角色继续运动,画出另一个半圆,就得到了一条白色的太极鱼。因为背景是白色的,也就不需要填充了。

最后,我们再为两条太极鱼分别点上一黑一白两个眼睛就可以了。怎么画呢?最简单的方法就将画笔设置为眼睛的大小,然后将角色移动到鱼眼的位置“落笔”即可。

在文章的最后,让我们来看一下完整的太极图绘制过程的视频。

如果想画出更多妙趣横生的图形,可以阅读由清华大学出版社出版的《“编”玩边学:Scratch编程进阶——妙趣横生的数学和算法》一书。书中介绍了使用参数方程更出美丽的爱心曲线、玫瑰曲线、蝴蝶曲线等。

一本Scratch2.0进阶教材,一本适合中小学信息学竞赛的教材,让编程课程升级、知识衔接顺畅。京东、天猫、淘宝、当当等各大网店有售。

Scratch课程推荐

??用Scratch画太极图??用Scratch实现信息的加密和解密??从“愤怒的小鸟”学习用编程展示物理规律??,:用Scratch画出美丽的爱心??如何用Scratch画出美丽的爱心???用Scratch查询十二星座??用Scratch给卡拉OK小歌手打分??韩信点兵:用Scratch巧解奥数题??水手分椰子:用Scratch巧解奥数题??鸡兔同笼:用Scratch巧解奥数题??汉诺塔:用Scratch巧解游戏难题??爱因斯坦阶梯问题:用Scratch巧解数学题??像冰雹一样变化的数字:用Scratch验证冰雹猜想??欧几里德算法和更相减损术:用Scratch实现古老的数学算法小海豚科学馆

为少儿编程点赞??



转载请注明地址:http://www.hthaituna.com/htfbfw/9445.html