Scratch画分形几何图系列27:谢尔宾斯基填充曲线
前面我们画出了皮亚诺填充曲线和希尔伯特填充曲线,现在我们来画另外一种填充曲线——谢尔宾斯基填充曲线。
先看第一种画法:
经典谢尔宾斯基填充曲线
(1)分布示意:
初级
一级
二级
(2)得出经典谢尔宾斯基填充曲线的L系统:
公理; F--XF--F—XF,
X -> XF F XF--F--XF F X,
转角 = 45度
:左转45度,-:右转45度,F:画线L步,X:N=0时什么也不做
(3)由L系统做出递归子程序和主程序,这里为了画出的填充曲线在屏幕较好展示,我们需要计算每一级的移动步数L与整个分形图的宽度之间的关系:
计算合适的L值
递归子程序
主程序
(4)更密集的填充图:
4级谢氏填充曲线
6级谢氏填充曲线
N=7时的填充曲线
谢尔宾斯基填充曲线(Sierpinski Filling Curve),还有一种画法:
(5)就是仿照前面画希尔伯特填充曲线的思路,用两种规则L和R套用来实现谢尔宾斯基填充曲线的画法。
L的规则是按顺时针方向画三线段(RFR)形成梯形;
R的规则是按逆时针方向画三线段(LFL)形成梯形。
主程序是L和F按一定规则组合形成。示意图如下:
互相调用的递归子程序示意
(6)我们根据上面的生成规则定义L系统如下:
公理 L−−F−−L−− F
规则 L→ R−F−R ;R→ −L F L−
符号 F:前进 ; :左转45度;−:右转45度;
L,R:什么都不做。
(7)根据L系统的定义先写出互相调用的递归子程序代码:
子程序
(8)主程序和分级图:
主程序
2级
3级
6级
13级
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved