Scratch用递归算法:画雪花

固定链接: https://www.kidscoding8.com/50557.html

在画雪花之前, 我们先画画这些:

我们看在Scratch里如何自己画一个角色的。

Scratch用递归算法:画雪花

右上角有一个十字样的功能,是确定所画的角色的中心的。

Scratch用递归算法:画雪花

如果中心如上图,我们执行如下程序:

Scratch用递归算法:画雪花

得到这样的图案:

Scratch用递归算法:画雪花

如果中心不同:

Scratch用递归算法:画雪花

图案是不同的:

Scratch用递归算法:画雪花

美丽的图案瞬间出自自己的妙手,不妨多试试几个不同的。这里我们顺便学会了什么是克隆自己。我们看过克隆人的电影吧,就是人的一个复制品。克隆人法律是不允许的。

Scratch用递归算法:画雪花

像孙悟空拔一把汗毛吹一口气说,”变“,就有了许多与他一样的孙悟空。

============

下面的内容比较难理解,不要求花很多时间,如果一些小朋友无法接受就等长大一些再回头来学。

下面来画雪花:

为什么雪花是六角形的?

大部份冰晶形成时有着六边对称的特性,但是它们会因应温度的改变而做成很多不同形状的变化。

Scratch用递归算法:画雪花

先画一个六角形:

Scratch用递归算法:画雪花

以上程序只能画成这个样子了。

递归法,就是在运行的过程中调用自己。像俄罗斯套娃。俄罗斯套娃好理解,递归却是理解的难点。

Scratch用递归算法:画雪花

思路:

第一步:以12条线段画出一个六角形。(上面的方法只能完成这一步。)

第二步:把第一步变成,以每条线段的1/3作为边长,画出一个更小的六角形。并循环重复组成第一步大小的六边形。

第三步:把第一步变成:以每条线段的1/9作为边长,画出一个更更小的六角形。并循环重复组成第二步大小的六边形,并循环重复组成第一步大小的六边形。

按以上规则重复,重复几次要看给定的范围,比如本题中边长100(暂不管单位。)的1/3、1/9、1/27或更小。

程序是这样的:

Scratch用递归算法:画雪花

100除以3、9、27和81等的运算程序:

Scratch用递归算法:画雪花

Scratch用递归算法:画雪花

相关推荐