import random
import os
from palettes import randomPalette
from util import getTurtleAndScreen
# Koch Snowflake. This time draw all of the levels on top of each other
# and fill in the shapes.
# CAC, 3/29/2023
def drawKSnowflake(turtle,length,level):
turtle.begin_fill()
drawKLine(turtle,length,level)
turtle.right(120)
drawKLine(turtle,length,level)
turtle.right(120)
drawKLine(turtle,length,level)
turtle.end_fill()
def drawKLine(turtle,length,level):
if level==1:
turtle.forward(length)
else:
l = length/3
drawKLine(turtle,l,level-1)
turtle.left(60)
drawKLine(turtle,l,level-1)
turtle.right(120)
drawKLine(turtle,l,level-1)
turtle.left(60)
drawKLine(turtle,l,level-1)
def Draw():
levels = random.randint(1,7)
title = "Koch Snowflake "+str(levels)
width = 600
height = 600
L = 500
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)
# Get everything setup.
turtle.penup()
turtle.goto(50,150)
turtle.pendown()
pcolor = None
for i in range(levels,0,-1):
color = random.choice(colors)
while(color==pcolor):
color = random.choice(colors)
turtle.color(color)
pcolor=color
turtle.setheading(60)
drawKSnowflake(turtle,L,i)
turtle.penup()
screen.mainloop()
# ----------------------------------------------------------------
if __name__ == '__main__':
Draw()