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

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

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

這次,我們用Turtle模塊結(jié)合三角函數(shù),繪制出這樣的勾股樹(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),計(jì)算出新的正方形的度數(shù)和邊長(zhǎng)并繪制,這里采用遞歸的方式

ln表示邊長(zhǎng),mode表示當(dāng)前正方形是在前一個(gè)正方形的左邊或右邊,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è)置速度,因?yàn)檫f歸很占內(nèi)存,所以繪制速度會(huì)卡頓減緩,所以這里加速1000倍,設(shè)置無(wú)延遲,筆觸顏色為綠色,筆觸大小2,抬筆,設(shè)置方向,并開(kāi)始遞歸,最后隱藏畫(huà)布并保持窗口顯示

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實(shí)現(xiàn)繪制勾股樹(shù)的文章就介紹到這了,更多相關(guān)Python Turtle勾股樹(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

    下載文件是我們?cè)谌粘9ぷ髦谐3R龅囊患虑?當(dāng)我們需要從互聯(lián)網(wǎng)上批量下載大量文件時(shí),手動(dòng)一個(gè)一個(gè)去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧
    2023-11-11
  • 利用python實(shí)現(xiàn)漢諾塔游戲

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

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

    Python多線程和隊(duì)列操作實(shí)例

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

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

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

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

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

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

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

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

    這篇文章主要介紹了Python實(shí)現(xiàn)從url中提取域名的幾種方法,本文給出了3種方法實(shí)現(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)記、線條,讓你的圖像更加豐富,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python實(shí)現(xiàn)順時(shí)針打印矩陣

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

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

最新評(píng)論