大家好,我是爱编程的小熊,上一节我们学习了绘制螺旋之美,美妙的图案总是那么的令人沉迷。这节,让我们来学习绘制分形之树,看看会是怎样的精彩!
编程描述:
使用递归算法绘制一颗树,一颗会长大的树
编程思路:
这章的内容可能有点挑战,使用递归算法绘制一颗二叉树,并进一步完善,需要大家进一步理解
开始编程:
1. 一颗幼苗
一棵树由树干和树枝组成,我们先绘制最简单的树,有一个树干和两个树枝,就像丫字。
那问题来了,怎么绘制呢。大家想一下,我们先绘制树干,然后绘制树枝,首先,向上移动100步,绘制出树干,向左旋转30°,移动0.8X100步,向右旋转60°,移动0.8X100步,再返回到起始位置,不就好起来了吗。
当然,少不了我们的自制积木。
看我们的幼苗就绘制出来了。
2. 树要开始长大了
要想这颗树继续长大,就要有更多的分支,一个分支长出两个分支,每一个分支有长出更小的两个分支。啊啊啊,那问题来了,这样会不会很复杂。别着急,我们不是刚学了递归算法吗,上面刚好是一个分支长出两个,同时,分支设为上一级的0.8倍,我们可以不断调用自身,这不就好起来了吗。
来来来,我们来建一个新的自制积木,首先我们得要有个层级,就是树的分支。
那么问题来了,这样就可以了吗。
当然不是了,明显当层级数为1的时候,就是最后一根树枝,没办法再分了,这时候,我们就需要直接画出来,不继续递归下去。
我们来尝试一下吧
大家来数数有多少个树枝。
3. 树终于长大了
那么问题来了,这不像树呀。别急,我们继续为我们的小树积木添加颜色和树干粗细变量吧。
树木的粗细不可能都是一样大小,一般都是树干最大,树枝次之,同样的,我们将树的粗细设为上一级的0.8倍,然后每一级的颜色都加3,这不就好起来了吗。
我们来试试
我们来试试将层级设为8看看
小树成功长成大树
4. 回顾一下
使用递归的实质是寻找某一级与下一级的关系,然后进行调用,加上控制结束的条件,就是一个很成熟的递归了
5. 探究一下
好了,你真的学会了吗,来探究一下吧
如何绘制下面图形?大家抓上爸爸妈妈一起探究一下吧
图形一
图形二
温馨提示: 这两个图形绘制和前面的二叉树没多大区别,区别的是,角度的不一样和图形不一样,这个比较有挑战
当然,下节内容更精彩了....
大家想要源码可以留言,私信