Are you sure?
Do you want to delete “Recursion: fractal tree” permanently? You will not be able to undo this action.
import math;
# let's start with a nice background:
Rectangle(color=['#acf', '#cef', '#fff'])
Circle(x=50, y=100, width=200, height=40, color='#350')
# "tree" is a function -- a reusable piece of code
# In this case it's a _recursive_ function; that is, it calls itself.
# With recursion, it is possible to build complex behavior from a
# relatively simple base.
def tree(x, y, angle, length):
# calculate the end point with trigonometry:
end_x = int(x + length * math.cos(angle))
end_y = int(y + length * math.sin(angle))
# draw one line:
Line([(x, y), (end_x, end_y)], color="tan")
# we need to stop at some point; only draw further if line length is over 5.
if length > 5:
# this call will draw one branch off our line
tree(end_x, end_y, angle+0.3, length*2/3)
# and this will draw the other line
tree(end_x, end_y, angle-0.65, length*2/3)
if length < 10:
# we need some green at the top:
Circle(x=end_x, y=end_y, width=10, height=10, color=["green", "darkgreen"])
# this single function call will draw the whole tree
tree(60, 100, math.radians(270), 30)