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-12
Python實現(xiàn)排序算法、查找算法和圖遍歷算法實例
這篇文章主要介紹了Python實現(xiàn)排序算法、查找算法和圖遍歷算法實例,排序算法、查找算法和圖遍歷算法是計算機科學中常見且重要的算法。它們在數(shù)據處理、搜索和圖結構等領域發(fā)揮著關鍵作用,需要的朋友可以參考下2023-08-08
python爬蟲中get和post方法介紹以及cookie作用
本篇文章通過爬取163郵箱實例介紹了python爬蟲中get和post方法介紹以及cookie作用,對此有興趣的朋友學習下。2018-02-02
Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn)
這篇文章主要介紹了Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
python_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

