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

Scratch用递归算法:画雪花

Scratch 少儿编程 8774浏览 0评论

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

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

 

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

 

Scratch用递归算法:画雪花

 

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

 

Scratch用递归算法:画雪花

 

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

 

Scratch用递归算法:画雪花

 

得到这样的图案:

 

Scratch用递归算法:画雪花

 

如果中心不同:

 

Scratch用递归算法:画雪花

 

图案是不同的:

 

 

Scratch用递归算法:画雪花

 

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

 

Scratch用递归算法:画雪花

 

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

 

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

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

 

下面来画雪花:

为什么雪花是六角形的?

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

Scratch用递归算法:画雪花

先画一个六角形:

Scratch用递归算法:画雪花

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

 

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

 

Scratch用递归算法:画雪花

 

思路:

  1. 第一步:以12条线段画出一个六角形。(上面的方法只能完成这一步。)
  2. 第二步:把第一步变成,以每条线段的1/3作为边长,画出一个更小的六角形。并循环重复组成第一步大小的六边形。
  3. 第三步:把第一步变成:以每条线段的1/9作为边长,画出一个更更小的六角形。并循环重复组成第二步大小的六边形,并循环重复组成第一步大小的六边形。
  4. 按以上规则重复,重复几次要看给定的范围,比如本题中边长100(暂不管单位。)的1/3、1/9、1/27或更小。

 

 

 

程序是这样的:

 

Scratch用递归算法:画雪花

 

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

 

Scratch用递归算法:画雪花

 

来看看运行效果:

 

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