python使用turtle繪制分形樹
更新時間:2018年06月22日 10:53:35 作者:yunyunyx
這篇文章主要為大家詳細介紹了python使用turtle繪制分形樹的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
由于分形樹具有對稱性,自相似性,所以我們可以用遞歸來完成繪制。只要確定開始樹枝長、每層樹枝的減短長度和樹枝分叉的角度,我們就可以把分形樹畫出來啦!!
代碼如下:
# -*- coding: utf-8 -*- ''' 繪制分形樹 ''' import turtle as tl def draw_smalltree(tree_length,tree_angle): ''' 繪制分形樹函數(shù) ''' 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()
結果如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解讀Scrapy回調函數(shù)callback傳遞參數(shù)的方式
這篇文章主要介紹了解讀Scrapy回調函數(shù)callback傳遞參數(shù)的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Python實現(xiàn)排序算法、查找算法和圖遍歷算法實例
這篇文章主要介紹了Python實現(xiàn)排序算法、查找算法和圖遍歷算法實例,排序算法、查找算法和圖遍歷算法是計算機科學中常見且重要的算法。它們在數(shù)據(jù)處理、搜索和圖結構等領域發(fā)揮著關鍵作用,需要的朋友可以參考下2023-08-08python爬蟲中get和post方法介紹以及cookie作用
本篇文章通過爬取163郵箱實例介紹了python爬蟲中get和post方法介紹以及cookie作用,對此有興趣的朋友學習下。2018-02-02Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn)
這篇文章主要介紹了Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10python_tkinter彈出對話框創(chuàng)建2
這篇文章主要介紹了python_tkinter彈出對話框創(chuàng)建,上以篇文章我們簡單的對對話框創(chuàng)建做了簡單介紹,本文將繼續(xù)更多相關內容,需要的小伙伴可以參考一下2022-03-03基于virtualenv創(chuàng)建python虛擬環(huán)境過程圖解
這篇文章主要介紹了基于virtualenv創(chuàng)建python虛擬環(huán)境過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03