Scratch画分形图形系列86:由科赫曲线孳生的有趣分形
Scratch画分形图形系列86:由科赫曲线孳生的有趣分形
一、问题的提出
科赫(Koch)曲线在分形几何中是赫赫有名的存在,我们也在Scratch画分形几何图系列条文中给出过若干范例。本文再次以科赫曲线为基础,画出由它演变出的有趣分形图。
二、画一个三脚架构成的填满平面的正六边形组合,这是在《CHAOS AND FRACTALS》一书中介绍科赫曲线那一段给出的一个分形。
(一)根据0级到2级分形图可见,0级最初元是一根线段,1级是将一根线段变成一个等长等夹角的“三脚架”,2级是1级三脚架的每一条边又变成了一个新的三脚架……这里要注意上一级线段的方向,如下图中的白色虚线箭头所示。
设θ=30度,上一级的线段长度A与下一级的三脚架的边长a之间的关系是acosθ=A/2,所以a/A=1/2cosθ。
(二)编程实现,和画其它分形类似,用L系统递归给出。
1.先定义堆栈(保存恢复位置)的子程序:
2.定义画线段并退回原位的子程序,以及抬笔移动的子程序:
3.由前面的分析得出L系统规则:
V(字母表):F,f,+,-,[,]
ω(公理):F
P(规则):规则1:F → [+F+f-----F+f-----F]
δ(角度增量):30°
4.对应规则有F的递归子程序:
5.主程序和4级分形图:
(三)看看其它几级分形图,是不是很酷炫?
三、画一个像花篮一样的分形。
(一)迭代关系分析:0级图表示它的最初元是一根线段;1级是由4根初级元组成的W形折线,第一第二根以及第三第四根的夹角都是90度,第二第三根的夹角是30度;2级由1级的每一根线段又变成新一级的W形折线……
(二)编程实现
1.只要算出两级之间的线段长度比,就可以像画科赫曲线那样画出这个分形。
2.“花篮”的L系统规则:
V(字母表):F, +,-。
ω(公理):F
P(规则):规则1:F → -F++++++F----------F++++++F-
δ(角度增量):15°
3对应规则F的递归子程序:
4.画图主程序:
5.几级分形图:
6.像画科赫雪花那样,对主程序初始数据做些改动,将分形图旋转拼接,形成花环,而且分级动画呈现怎么样?
效果截图:
四、由反雪花组成的枯树图
反雪花分形是由科赫雪花的转角取反以后形成的,如果把角度大小做些变动,比如由60度变成接近90度怎么样?
如果我们把这样的反科赫曲线,通过旋转90度4次组合起来怎么样?
【拓展】你能做出根据θ角不断变化的反雪花组合的动图么?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。