python绘制分形树的(弱智)函数迭代方法

从每一个树杈开始

基本思路是画一个"Y"型, 从根部出发,然后再返回根部,然后根据需要进行转向与迭代。只要注意笔尖的方向就好。

 1 def GreenY():
 2     turtle.fd(40)
 3     turtle.left(30)
 4     turtle.fd(20)
 5     turtle.backward(20)
 6     turtle.right(60)
 7     turtle.fd(20)
 8     turtle.backward(20)
 9     turtle.left(30)
10     turtle.backward(40)
11 def DoubleGreenY():
12     turtle.color("green")
13     turtle.pendown()
14 #     turtle.left(90)
15     for i in [30, -60]:
16         turtle.left(i)
17         GreenY()
18     turtle.left(30)

 

然后对于后续的红色树干如法炮制 

 1 def RedY():
 2     #
 3     turtle.color("Red")
 4 #     turtle.left(90)
 5     turtle.fd(50)
 6     turtle.left(30)
 7     turtle.fd(50)
 8     DoubleGreenY()
 9     turtle.color("Red")   
10     turtle.backward(50)
11     turtle.left(-60)
12     turtle.fd(50)
13     DoubleGreenY()
14     turtle.color("Red")  
15     turtle.backward(50)
16     turtle.left(30)
17     turtle.backward(50)
18 def DoubleRedY():
19 #     turtle.setup(400,400)
20     turtle.color("Red")
21     turtle.fd(50)
22     for i in [30 , -60]:
23         turtle.left(i)
24         RedY()
25     turtle.left(30)
26     turtle.backward(50)

最后输出结果。

为了美观,微调了树干的长度和角度。

Ps. 这是笔者自己一点一点微调出来的,修改和维护都不容易。而且“人工的函数迭代”让相互之间的依赖性太强。

算是初学python的第一个程序

以后有机会优化一下代码

 

posted @ 2018-04-21 15:14  Leon_Xx  阅读(3212)  评论(0编辑  收藏  举报