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的第一個程序

以后有機會優化一下代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM