20 lines
505 B
Prolog
20 lines
505 B
Prolog
fractal :-
|
|
new(D, window('Fractal')),
|
|
send(D, size, size(800, 600)),
|
|
drawTree(D, 400, 500, -90, 9),
|
|
send(D, open).
|
|
|
|
|
|
drawTree(_D, _X, _Y, _Angle, 0).
|
|
|
|
drawTree(D, X1, Y1, Angle, Depth) :-
|
|
X2 is X1 + cos(Angle * pi / 180.0) * Depth * 10.0,
|
|
Y2 is Y1 + sin(Angle * pi / 180.0) * Depth * 10.0,
|
|
new(Line, line(X1, Y1, X2, Y2, none)),
|
|
send(D, display, Line),
|
|
A1 is Angle - 30,
|
|
A2 is Angle + 30,
|
|
De is Depth - 1,
|
|
drawTree(D, X2, Y2, A1, De),
|
|
drawTree(D, X2, Y2, A2, De).
|