用户:
Planet_Cube查看:0 回复:0 评论:0 创建时间:2022-04-29T22:55:47
【作品展示】

【作品介绍】
分形,具有以非整数维形式充填空间的形态特征。通常被定义为具有自相似的性质的图形。值得一提的是,FlowSnake分形的名称是SnowFlake的两个首字母互换位置得到的。由于官方提供了一个SnowFlake分形的递归绘制方式,所以此分形的代码也就以它为框架,但不同之处在于,此分形使用了2个基本函数,即A和B,这也使编写程序变得更加困难。
下面是思路:
首先是大框架A函数;
A函数在下一阶转换为A+B++B-A--AA-B+;
B函数在下一阶转换为-A+BB++B+A--A-B;
其中,+是左转60度,-是右转60度。
【作品源代码】
import turtle
t = turtle.Pen()
def A(size, n):
if (n == 0):
t.forward(size)
else:
A(size / 3, n - 1)
t.left(60)
B(size/3, n-1)
t.left(120)
B(size/3, n-1)
t.right(60)
A(size / 3, n - 1)
t.right(120)
A(size / 3, n - 1)
A(size / 3, n - 1)
t.right(60)
B(size/3, n-1)
t.left(60)
def B(size, n):
if (n == 0):
t.forward(size)
else:
t.right(60)
A(size / 3, n - 1)
t.left(60)
B(size / 3, n - 1)
B(size / 3, n - 1)
t.left(120)
B(size / 3, n - 1)
t.left(60)
A(size / 3, n - 1)
t.right(120)
A(size / 3, n - 1)
t.right(60)
B(size / 3, n - 1)
def drawFlowSnakeFractal(x, y, wide, level, size):
t.speed(0)
t.penup()
t.goto(x, y)
t.pendown()
t.pensize(wide)
t.right((15 * level))
A(size, level)
turtle.done()
drawFlowSnakeFractal(-150, -100, 2, 3, 400)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn