Fractals and recursion are two ideas that were made for each other. In videos 48-51, we will be exploring the ideas around fractals, recursive functions, and using randomization to make designs more interesting and realistic.
from turtle import *
import random
screen = Screen()
intMin = 30
def drawBranch(intDist, intLevel):
pensize((7-intLevel)*2+1)
intTravel = random.randint(int(intDist//1.5), int(intDist//.5))
forward(intTravel)
if (intDist > intMin):
left(30)
drawBranch(int(intDist//1.3), intLevel+1)
right(60)
drawBranch(int(intDist//1.3), intLevel+1)
left(30)
back(intTravel)
speed(0)
teleport(0,-200)
setheading(90)
drawBranch(150, 1)
screen.exitonclick()
from turtle import *
import random
screen = Screen()
intMin = 30
def drawBranch(intDist, intLevel):
if intLevel <= 5:
pensize((5-intLevel)**2+1)
else:
pensize(1)
intTravel = random.randint(int(intDist//1.5), int(intDist//.8))
print(intTravel)
forward(intTravel)
if (intDist > intMin):
intNB = random.randint(2,5)
intMaxAng = random.randint((intNB*20), (intNB*30))
intAvgAng = intMaxAng//(intNB-1)
intParentAng = heading()
left((intNB/2)*intAvgAng-(intAvgAng//2))
for branch in range(intNB):
intAV = random.randint(-5, 5)
drawBranch(int(intDist//1.5), intLevel+1)
right(intAvgAng+intAV)
setheading(intParentAng)
back(intTravel)
speed(0)
teleport(0,-300)
setheading(90)
drawBranch(150, 1)
screen.exitonclick()