龙空技术网

Scratch画分形图形系列82: 递归画L形生成类康托迷宫

刘_汉杰 39

前言:

此时姐妹们对“图形化编程视频”可能比较讲究,各位老铁们都想要了解一些“图形化编程视频”的相关知识。那么小编也在网络上汇集了一些对于“图形化编程视频””的相关内容,希望朋友们能喜欢,小伙伴们一起来学习一下吧!

Scratch画分形图形系列82: 递归画L形生成类康托迷宫

一、问题的提出

记得在前面的头条文中,我们仿照品字形方块生成谢尔宾斯基三角,用递归画矩形生成绚丽的埃菲尔铁塔分形。

1至6级埃菲尔铁塔分形

本文就来对L形多边形进行四等分,挖去一块形成康拓迷宫状分形图。

二、画法分析

像下图那样把L形多边形分成四等分,边长缩小为上一级的一半,挖去中间那个绿色的小L形,就相当于在周围三个红黄蓝小L形,这与挖孔画谢尔宾斯基三角思路一样。只不过要注意画L形时的起始位置和方向。由此可见这个分形的豪斯多夫维数与谢尔宾斯基三角一样,也是n=ln3/ln2。

将大L形多边形平分成四等份

挖去中间那一块相当于周围画三块

画周围三个L形多边形的位置方向示意图

三、Scratch编程实现

有了上面的分析,我们就可以像画方块谢尔宾斯基三角那样,编写递归子程序了。只不过画L形多边形要比画正多边形复杂一点。

1.保存位置和恢复位置的子程序:

2.画L形多边形的子程序,如果画实心的,要用直到循环来“内卷的”的方式。

内卷法画实心L形多边形的子程序

3.画康托迷宫类分形的递归子程序:

4.递归画康托迷宫类分形的主程序:

四、10至12级分形图:

五、拓展:

(一)如果去掉的不是中间而是其它位置,例如去掉左下角的小L形,会是什么状况?

(二)如果规则改为不是去掉某一块,而是不断画四种不同颜色的L形多边形填充,结果怎么样?

是不是也很酷炫?如果是画空心的L形多边形呢?是不是填充曲线的意味再现了?

根据改变的规则,参考本文的算法,有兴趣的读者可以动手去做一做。

标签: #图形化编程视频