RosettaCodeData/Task/Pythagoras-tree/Python/pythagoras-tree.py

21 lines
556 B
Python

from turtle import goto, pu, pd, color, done
def level(ax, ay, bx, by, depth=0):
if depth > 0:
dx,dy = bx-ax, ay-by
x3,y3 = bx-dy, by-dx
x4,y4 = ax-dy, ay-dx
x5,y5 = x4 + (dx - dy)/2, y4 - (dx + dy)/2
goto(ax, ay), pd()
for x, y in ((bx, by), (x3, y3), (x4, y4), (ax, ay)):
goto(x, y)
pu()
level(x4,y4, x5,y5, depth - 1)
level(x5,y5, x3,y3, depth - 1)
if __name__ == '__main__':
color('red', 'yellow')
pu()
level(-100, 500, 100, 500, depth=8)
done()