Scratch3.0数学之美

scratch3数学之美08-分形之树

2020-03-30  本文已影响0人  爱编程的小熊

大家好,我是爱编程的小熊,上一节我们学习了绘制螺旋之美,美妙的图案总是那么的令人沉迷。这节,让我们来学习绘制分形之树,看看会是怎样的精彩!

编程描述:

使用递归算法绘制一颗树,一颗会长大的树

编程思路:

这章的内容可能有点挑战,使用递归算法绘制一颗二叉树,并进一步完善,需要大家进一步理解

开始编程:

1. 一颗幼苗

一棵树由树干和树枝组成,我们先绘制最简单的树,有一个树干和两个树枝,就像丫字。

那问题来了,怎么绘制呢。大家想一下,我们先绘制树干,然后绘制树枝,首先,向上移动100步,绘制出树干,向左旋转30°,移动0.8X100步,向右旋转60°,移动0.8X100步,再返回到起始位置,不就好起来了吗。

当然,少不了我们的自制积木。

看我们的幼苗就绘制出来了。

2. 树要开始长大了

要想这颗树继续长大,就要有更多的分支,一个分支长出两个分支,每一个分支有长出更小的两个分支。啊啊啊,那问题来了,这样会不会很复杂。别着急,我们不是刚学了递归算法吗,上面刚好是一个分支长出两个,同时,分支设为上一级的0.8倍,我们可以不断调用自身,这不就好起来了吗。

来来来,我们来建一个新的自制积木,首先我们得要有个层级,就是树的分支。

那么问题来了,这样就可以了吗。

当然不是了,明显当层级数为1的时候,就是最后一根树枝,没办法再分了,这时候,我们就需要直接画出来,不继续递归下去。

我们来尝试一下吧

大家来数数有多少个树枝。

3. 树终于长大了

那么问题来了,这不像树呀。别急,我们继续为我们的小树积木添加颜色和树干粗细变量吧。

树木的粗细不可能都是一样大小,一般都是树干最大,树枝次之,同样的,我们将树的粗细设为上一级的0.8倍,然后每一级的颜色都加3,这不就好起来了吗。

我们来试试

我们来试试将层级设为8看看

小树成功长成大树

4. 回顾一下

使用递归的实质是寻找某一级与下一级的关系,然后进行调用,加上控制结束的条件,就是一个很成熟的递归了

5. 探究一下

好了,你真的学会了吗,来探究一下吧

如何绘制下面图形?大家抓上爸爸妈妈一起探究一下吧

图形一

图形二

温馨提示: 这两个图形绘制和前面的二叉树没多大区别,区别的是,角度的不一样和图形不一样,这个比较有挑战

当然,下节内容更精彩了....

大家想要源码可以留言,私信

上一篇下一篇

猜你喜欢

热点阅读