python turtle 递归绘制树

运行效果

image

代码

import turtle as t
import random as r

c = ["pink", "green", "lightgreen", "orange", "red", "purple"]

def drawStar(l):
    t.begin_fill()
    for i in range(5):
        t.forward(l)
        t.left(144)
    t.end_fill()
        

def drawBranch(l):
    agl = r.randint(10, 30)
    t.left(agl)
    t.forward(l)
    if l > 10:
        drawBranch(l - r.randint(10, 15))
    else:
        t.color(r.choice(c))
        drawStar(r.randint(10, 20))
        t.color("black")
    t.backward(l)
    t.right(agl)
    agl = r.randint(10, 30)
    t.right(agl)
    t.forward(l)
    if l > 10:
        drawBranch(l - r.randint(10, 15))
    else:
        t.color(r.choice(c))
        drawStar(r.randint(10, 20))
        t.color("black")
    t.backward(l)
    t.left(agl)

# t.speed(0)
t.tracer(False)
t.penup()
t.goto(0,-300)
t.pendown()
t.left(90)
t.forward(50)
drawBranch(100)
t.done()

posted @ 2024-02-08 17:46  iamy  阅读(55)  评论(0)    收藏  举报