欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+Turtle實現(xiàn)繪制勾股樹

 更新時間:2023年01月05日 15:13:50   作者:Leleprogrammer  
畢達哥拉斯樹,也叫“勾股樹”,是由畢達哥拉斯根據(jù)勾股定理所畫出來的一個可以無限重復(fù)的樹形圖形。本文將利用Python中的Turtle庫實現(xiàn)勾股樹的繪制,感興趣的可以了解一下

這次,我們用Turtle模塊結(jié)合三角函數(shù),繪制出這樣的勾股樹:

首先,導(dǎo)入模塊

from turtle import *
from math import sin,cos,radians

定義勾股數(shù)每次旋轉(zhuǎn)的度數(shù)

angle1=70
angle2=90-angle1

定義tree函數(shù),繪制正方形并記錄要生成的新的正方形的坐標(biāo),計算出新的正方形的度數(shù)和邊長并繪制,這里采用遞歸的方式

ln表示邊長,mode表示當(dāng)前正方形是在前一個正方形的左邊或右邊,h表示朝向,p表示坐標(biāo)

def tree(ln,mode="left",h=90,p=(0,0)):
    pu()
    seth(h)
    goto(p)
    if ln>1:
        pd()
        for i in range(4):
            if i==1 and mode=="left":
                pos1=pos()
            if i==2 and mode=="left":
                pos2=pos()
            if i==2 and mode=="right":
                pos1=pos()
            if i==3 and mode=="right":
                pos2=pos()
            fd(ln)
            right(90)
        h=heading()
        tree(ln*cos(radians(angle1)),"left",h+angle1 if mode=="left" else h-angle1,pos1)
        tree(ln*cos(radians(angle2)),"right",h+90-angle2 if mode=="left" else h-angle2,pos2) 

在主程序中設(shè)置速度,因為遞歸很占內(nèi)存,所以繪制速度會卡頓減緩,所以這里加速1000倍,設(shè)置無延遲,筆觸顏色為綠色,筆觸大小2,抬筆,設(shè)置方向,并開始遞歸,最后隱藏畫布并保持窗口顯示

speed(0)
tracer(1000)
delay(0)
color("green")
pensize(2)
pu()
seth(90)
tree(70,p=(-100,-300))
 
ht()
done()

最終代碼:

from turtle import *
from math import sin,cos,radians
 
angle1=45 # 自行修改
angle2=90-angle1
 
def tree(ln,mode="left",h=90,p=(0,0)):
    pu()
    seth(h)
    goto(p)
    if ln>1:
        pd()
        for i in range(4):
            if i==1 and mode=="left":
                pos1=pos()
            if i==2 and mode=="left":
                pos2=pos()
            if i==2 and mode=="right":
                pos1=pos()
            if i==3 and mode=="right":
                pos2=pos()
            fd(ln)
            right(90)
        h=heading()
        tree(ln*cos(radians(angle1)),"left",h+angle1 if mode=="left" else h-angle1,pos1)
        tree(ln*cos(radians(angle2)),"right",h+90-angle2 if mode=="left" else h-angle2,pos2)
 
speed(0)
tracer(1000)
delay(0)
color("green")
pensize(2)
pu()
seth(90)
tree(70,p=(-100,-300))
 
ht()
done()

到此這篇關(guān)于Python+Turtle實現(xiàn)繪制勾股樹的文章就介紹到這了,更多相關(guān)Python Turtle勾股樹內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)批量下載文件的示例代碼

    Python實現(xiàn)批量下載文件的示例代碼

    下載文件是我們在日常工作中常常要做的一件事情,當(dāng)我們需要從互聯(lián)網(wǎng)上批量下載大量文件時,手動一個一個去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧
    2023-11-11
  • 利用python實現(xiàn)漢諾塔游戲

    利用python實現(xiàn)漢諾塔游戲

    這篇文章主要為大家詳細介紹了利用python實現(xiàn)漢諾塔游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python多線程和隊列操作實例

    Python多線程和隊列操作實例

    這篇文章主要介紹了Python多線程和隊列操作實例,本文直接給給實例代碼,需要的朋友可以參考下
    2015-06-06
  • Java中的各種單例模式優(yōu)缺點解析

    Java中的各種單例模式優(yōu)缺點解析

    這篇文章主要介紹了Java中的各種單例模式解析,單例模式是Java中最簡單的設(shè)計模式之一,這種類型的設(shè)計模式屬于創(chuàng)建者模式,它提供了一種訪問對象的最佳方式,需要的朋友可以參考下
    2023-07-07
  • Python遍歷目錄下文件、讀取、千萬條數(shù)據(jù)合并詳情

    Python遍歷目錄下文件、讀取、千萬條數(shù)據(jù)合并詳情

    這篇文章主要介紹了Python遍歷目錄下文件、讀取、千萬條數(shù)據(jù)合并詳情,對文件夾和文件進行屬性判斷,首先對文件夾進行遍歷,看文件夾里有什么樣的文件,讀取出文件夾中的所有文件,下面文章將詳細介紹該內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • 基于Python+OpenCV制作屏幕錄制工具

    基于Python+OpenCV制作屏幕錄制工具

    這篇文章主要介紹了如何利用Python?OpenCV實現(xiàn)屏幕錄制工具的制作,文中的示例代碼講解詳細,對我們的學(xué)習(xí)和工作有一定的價值,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • Python實現(xiàn)從url中提取域名的幾種方法

    Python實現(xiàn)從url中提取域名的幾種方法

    這篇文章主要介紹了Python實現(xiàn)從url中提取域名的幾種方法,本文給出了3種方法實現(xiàn)在URL中提取域名的需求,需要的朋友可以參考下
    2014-09-09
  • python操作excel之xlwt與xlrd

    python操作excel之xlwt與xlrd

    這篇文章主要介紹了python使用xlwt與xlrd操作excel,需要的朋友可以參考下
    2022-12-12
  • matplotlib設(shè)置顏色、標(biāo)記、線條,讓你的圖像更加豐富(推薦)

    matplotlib設(shè)置顏色、標(biāo)記、線條,讓你的圖像更加豐富(推薦)

    這篇文章主要介紹了matplotlib設(shè)置顏色、標(biāo)記、線條,讓你的圖像更加豐富,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • python實現(xiàn)順時針打印矩陣

    python實現(xiàn)順時針打印矩陣

    這篇文章主要為大家詳細介紹了python實現(xiàn)順時針打印矩陣,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論