用python实现分形树的(弱智)函数迭代方法

Posted Leon_Xx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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的第一个程序

以后有机会优化一下代码

 

以上是关于用python实现分形树的(弱智)函数迭代方法的主要内容,如果未能解决你的问题,请参考以下文章

Python 14分形树绘制2.0

Python 13分形树绘制1.0--五角星(turtle库)

Python 再说勾股树,这次整一棵五彩的任意“生长”的分形树!

turtle练习 分形树最终优化

函数和分形 - 递归树 - Bash!逻辑问题

程序设计:C语言樱花树程序!详细注释+源码分享