
The Pythagoras tree is a fractal tree constructed from squares. It is named after Pythagoras because each triple of touching squares encloses a right triangle, in a configuration traditionally used to represent the Pythagorean theorem.




Task
Construct a Pythagoras tree of order 7 using only vectors (no rotation or trigonometric functions).




Related tasks
 Fractal tree


func tree x1 y1 x2 y2 depth . .
  if depth < 8
    dx = x2 - x1
    dy = y1 - y2
    x3 = x2 - dy
    y3 = y2 - dx
    x4 = x1 - dy
    y4 = y1 - dx
    x5 = x4 + 0.5 * (dx - dy)
    y5 = y4 - 0.5 * (dx + dy)
    color3 0.3 0.2 + depth / 18 0.1
    polygon [ x1 y1 x2 y2 x3 y3 x4 y4 ]
    polygon [ x3 y3 x4 y4 x5 y5 ]
    call tree x4 y4 x5 y5 depth + 1
    call tree x5 y5 x3 y3 depth + 1
  .
.
color3 0.3 0 0.1
call tree 41 90 59 90 0