由于分形樹具有對稱性,自相似性,所以我們可以用遞歸來完成繪制。只要確定開始樹枝長、每層樹枝的減短長度和樹枝分叉的角度,我們就可以把分形樹畫出來啦??!
代碼如下:
# -*- coding: utf-8 -*-'''繪制分形樹'''import turtle as tl def draw_smalltree(tree_length,tree_angle): ''' 繪制分形樹函數 ''' if tree_length >= 3: tl.forward(tree_length) #往前畫 tl.right(tree_angle) #往右轉 draw_smalltree(tree_length - 10,tree_angle)#畫下一枝,直到畫到樹枝長小于3 tl.left(2 * tree_angle) #轉向畫左 draw_smalltree(tree_length -10,tree_angle) #直到畫到樹枝長小于3 tl.rt(tree_angle) #轉到正向上的方向,然后回溯到上一層 if tree_length <= 30: #樹枝長小于30,可以當作樹葉了,樹葉部分為綠色 tl.pencolor('green') if tree_length > 30: tl.pencolor('brown') #樹干部分為棕色 tl.backward(tree_length) #往回畫,回溯到上一層def main(): tl.penup() #tl.pencolor('green') tl.left(90) #因為樹是往上的,所以先把方向轉左 tl.backward(250) #把起點放到底部 tl.pendown() tree_length = 100 #我設置的最長樹干為100 tree_angle = 20 #樹枝分叉角度,我設為20 draw_smalltree(tree_length,tree_angle) tl.exitonclick() #點擊才關閉畫畫窗口if __name__ == '__main__': main()
結果如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。
新聞熱點
疑難解答