28 lines
638 B
Plaintext
28 lines
638 B
Plaintext
Subroutine pythagoras_tree(x1, y1, x2, y2, depth)
|
|
If depth > 10 Then Return
|
|
|
|
dx = x2 - x1 : dy = y1 - y2
|
|
x3 = x2 - dy : y3 = y2 - dx
|
|
x4 = x1 - dy : y4 = y1 - dx
|
|
x5 = x4 + (dx - dy) / 2
|
|
y5 = y4 - (dx + dy) / 2
|
|
#draw the box
|
|
Line x1, y1, x2, y2 : Line x2, y2, x3, y3
|
|
Line x3, y3, x4, y4 : Line x4, y4, x1, y1
|
|
|
|
Call pythagoras_tree(x4, y4, x5, y5, depth +1)
|
|
Call pythagoras_tree(x5, y5, x3, y3, depth +1)
|
|
End Subroutine
|
|
|
|
w = 800 : h = w * 11 \ 16
|
|
w2 = w \ 2 : diff = w \ 12
|
|
|
|
Clg
|
|
FastGraphics
|
|
Graphsize w, h
|
|
Color green
|
|
Call pythagoras_tree(w2 - diff, h - 10, w2 + diff, h - 10, 0)
|
|
Refresh
|
|
ImgSave "pythagoras_tree.jpg", "jpg"
|
|
End
|