Turtle
027_Tree.py
import random
import os
from palettes import randomPalette
from util import getTurtleAndScreen
# Tree, using recursion.
# CAC, 3/31/2023
def drawTree(turtle,length,angle,level,colors):
realAngle=angle/2
if level >0: # If level <=0, draw nothing.
turtle.color(random.choice(colors))
turtle.forward(length)
x,y=turtle.pos()
ang = turtle.heading()
turtle.right(realAngle)
drawTree(turtle,length,angle,level-1,colors)
turtle.penup()
turtle.goto(x,y)
turtle.setheading(ang+realAngle)
turtle.pendown()
drawTree(turtle,length,angle,level-1,colors)
def Draw():
level = random.randint(4,9)
title = "Recursive Tree "+str(level)
width = 800
height = 600
filename = os.path.basename(__file__)[0:-3]
turtle, screen = getTurtleAndScreen(title,width,height,filename,moveWorld=True)
colors = randomPalette()
bg = random.choice(colors)
colors.remove(bg)
screen.bgcolor(bg)
turtle.pensize(2)
length = height/(level+2)
angle = 60
turtle.penup()
turtle.goto(width/2,length*1.5)
turtle.pendown()
turtle.setheading(90)
drawTree(turtle,length,angle,level,colors)
turtle.penup()
screen.mainloop()
# ----------------------------------------------------------------
if __name__ == '__main__':
Draw()
|