home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
mac
/
developm
/
language
/
elan.sit
/
turtle
/
PYTH.E
< prev
next >
Wrap
Text File
|
1988-11-09
|
1KB
|
53 lines
PROC pythagoras tree (REAL CONST size, INT CONST depth, angle):
draw (size);
IF resolution achieved
THEN
turn right;
draw (size);
turn right
ELSE
turn (angle);
pythagoras tree (size * cos (angle), depth - 1, angle);
turn left;
pythagoras tree (size * sin (angle), depth - 1, angle);
turn (90 - angle)
FI;
draw (size).
resolution achieved:
depth = 0 OR size < 0.1 * tree size.
ENDPROC pythagoras tree;
program:
enter turtle graphics;
move (graphics x limit DIV 2 - 60, line height);
put ("Pythagoras tree");
line;
ask parameters;
draw frame;
draw pythagoras tree;
wait for confirmation (1, graphics y limit - line height);
leave turtle graphics.
draw frame:
move (0.0, 0.0);
draw (0.0, 100.0);
draw (100.0, 100.0);
draw (100.0, 0.0);
draw (0.0, 0.0).
ask parameters:
INT CONST tree depth :: ask int ("Depth? ");
INT CONST tree angle :: ask int ("Angle? ");
REAL CONST tree size :: ask real ("Size ? ");
REAL CONST tree xpos :: ask real ("Xpos ? ");
REAL CONST tree ypos :: ask real ("Ypos ? ").
draw pythagoras tree:
move (tree xpos, tree ypos);
pythagoras tree (tree size, tree depth, tree angle).