python使用turtle繪制分形樹
由于分形樹具有對(duì)稱性,自相似性,所以我們可以用遞歸來(lái)完成繪制。只要確定開(kāi)始樹枝長(zhǎng)、每層樹枝的減短長(zhǎng)度和樹枝分叉的角度,我們就可以把分形樹畫出來(lái)啦!!
代碼如下:
# -*- 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) #往右轉(zhuǎn) draw_smalltree(tree_length - 10,tree_angle)#畫下一枝,直到畫到樹枝長(zhǎng)小于3 tl.left(2 * tree_angle) #轉(zhuǎn)向畫左 draw_smalltree(tree_length -10,tree_angle) #直到畫到樹枝長(zhǎng)小于3 tl.rt(tree_angle) #轉(zhuǎn)到正向上的方向,然后回溯到上一層 if tree_length <= 30: #樹枝長(zhǎng)小于30,可以當(dāng)作樹葉了,樹葉部分為綠色 tl.pencolor('green') if tree_length > 30: tl.pencolor('brown') #樹干部分為棕色 tl.backward(tree_length) #往回畫,回溯到上一層 def main(): tl.penup() #tl.pencolor('green') tl.left(90) #因?yàn)闃涫峭系模韵劝逊较蜣D(zhuǎn)左 tl.backward(250) #把起點(diǎn)放到底部 tl.pendown() tree_length = 100 #我設(shè)置的最長(zhǎng)樹干為100 tree_angle = 20 #樹枝分叉角度,我設(shè)為20 draw_smalltree(tree_length,tree_angle) tl.exitonclick() #點(diǎn)擊才關(guān)閉畫畫窗口 if __name__ == '__main__': main()
結(jié)果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式
這篇文章主要介紹了解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python實(shí)現(xiàn)排序算法、查找算法和圖遍歷算法實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)排序算法、查找算法和圖遍歷算法實(shí)例,排序算法、查找算法和圖遍歷算法是計(jì)算機(jī)科學(xué)中常見(jiàn)且重要的算法。它們?cè)跀?shù)據(jù)處理、搜索和圖結(jié)構(gòu)等領(lǐng)域發(fā)揮著關(guān)鍵作用,需要的朋友可以參考下2023-08-08python爬蟲中g(shù)et和post方法介紹以及cookie作用
本篇文章通過(guò)爬取163郵箱實(shí)例介紹了python爬蟲中g(shù)et和post方法介紹以及cookie作用,對(duì)此有興趣的朋友學(xué)習(xí)下。2018-02-02Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-08-08Python 3.6打包成EXE可執(zhí)行程序的實(shí)現(xiàn)
這篇文章主要介紹了Python 3.6打包成EXE可執(zhí)行程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python imageio讀取視頻并進(jìn)行編解碼詳解
今天小編就為大家分享一篇Python imageio讀取視頻并進(jìn)行編解碼詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python_tkinter彈出對(duì)話框創(chuàng)建2
這篇文章主要介紹了python_tkinter彈出對(duì)話框創(chuàng)建,上以篇文章我們簡(jiǎn)單的對(duì)對(duì)話框創(chuàng)建做了簡(jiǎn)單介紹,本文將繼續(xù)更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03基于virtualenv創(chuàng)建python虛擬環(huán)境過(guò)程圖解
這篇文章主要介紹了基于virtualenv創(chuàng)建python虛擬環(huán)境過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03