Basic Koch curve koch_curve(t, 4, 20)
def koch_curve(t, depth, length):
if depth==1:
t.fd(length)
return
koch_curve(t, depth-1, length)
t.lt(60)
koch_curve(t, depth-1, length)
t.rt(120)
koch_curve(t, depth-1, length)
t.lt(60)
koch_curve(t, depth-1, length)
__________________________________________________________________
This is a Koch curve with a base case that is a sierpinski triangle. As a result it takes some time to draw. This was the only modification I made. Looks really goofy. I have no idea why it does this. Perhaps a mystery to solve for the future. koch_custom(t, 4, 20)
def koch_custom(t, depth, length):
if depth==1:
t.fd(length)
sierpinski(t, 3, length)
return
koch_custom(t, depth-1, length)
t.lt(60)
koch_custom(t, depth-1, length)
t.rt(120)
koch_custom(t, depth-1, length)
t.lt(60)
koch_custom(t, depth-1, length)
__________________________________________________________________
Basic Sierpinski sierpinski(t, 4, 550)
def sierpinski(t, depth, length):
if depth==1:
triangle(t,int(length))
return
sierpinski(t,depth-1,length/2)
t.lt(60)
t.fd(length/2)
t.rt(60)
sierpinski(t,depth-1,length/2)
t.lt(60)
t.bk(length/2)
t.rt(60)
t.fd(length/2)
sierpinski(t,depth-1,length/2)
t.bk(length/2)
__________________________________________________________________
Freefall triangle!! My freefall triangle is a sierpinski triangle but all of the angles are slightly off (by a maximum of 5 degrees). sierpinski_custom(t, 4, 550)
def sierpinski_custom(t, depth, length):
if depth==1:
triangle(t,int(length))
#t.circle(int(length))
return
t.lt(random.randint(-10,10))
sierpinski_custom(t,depth-1,length/2)
t.pu()
t.lt(random.randint(55,65))
t.fd(length/2)
t.pd()
t.rt(random.randint(55,65))
sierpinski_custom(t,depth-1,length/2)
t.lt(random.randint(55,65))
t.pu()
t.bk(length/2)
t.rt(random.randint(55,65))
t.fd(length/2)
t.pd()
sierpinski_custom(t,depth-1,length/2)
t.bk(length/2)
__________________________________________________________________
Your average tree that you see outside. No randomness, perfectly symmetric.
tree(t, 4, 100, 20)
def tree(t, depth, length, angle):
if depth==1:
t.fd(length)
t.bk(length)
else:
t.fd(length)
t.rt(angle)
tree(t,depth-1,length,angle)
t.lt(2*angle)
tree(t,depth-1,length,angle)
t.rt(angle)
t.bk(length)
__________________________________________________________________
A tree with Sierpinski leaves. My tree has shorter and shorter branches with random angles making an irregular tree. I also gave it sierpinski leaves but adding sierpinski triangles to the base case. It was given the name "A Charlie Brown Tree" because of the sad bending and giant ornament
tree_custom(t, 4, 200, 20)
def tree_custom(t, depth, length, angle):
length = random.randint(30,length)
angle=random.randint(10, 30)
if depth==1:
t.fd(length)
sierpinski(t, 4, length)
t.bk(length)
else:
t.fd(length)
t.rt(angle)
tree_custom(t,depth-1,length,angle)
t.lt(2*angle)
tree_custom(t,depth-1,length,angle)
t.rt(angle)
t.bk(length)