home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / pgmutl / elan.zoo / turtle / pyth.eln < prev    next >
Text File  |  1988-10-11  |  1KB  |  54 lines

  1.  
  2. PROC pythagoras tree (REAL CONST size, INT CONST depth, angle):
  3.    draw (size);
  4.    IF resolution achieved
  5.    THEN
  6.      turn right;
  7.      draw (size);
  8.      turn right
  9.    ELSE
  10.      turn (angle);
  11.      pythagoras tree (size * cos (angle), depth - 1, angle);
  12.      turn left;
  13.      pythagoras tree (size * sin (angle), depth - 1, angle);
  14.      turn (90 - angle)
  15.    FI;
  16.    draw (size).
  17.  
  18.   resolution achieved:
  19.     depth = 0 OR size < 0.1 * tree size.
  20.  
  21. ENDPROC pythagoras tree;
  22.  
  23. program:
  24.    enter turtle graphics;
  25.    move (graphics x limit DIV 2 - 60, line height);
  26.    put ("Pythagoras tree");
  27.    line;
  28.    ask parameters;
  29.    draw frame;
  30.    draw pythagoras tree;
  31.    wait for confirmation (1, graphics y limit - line height);
  32.    leave turtle graphics.
  33.  
  34. draw frame:
  35.   move (0.0, 0.0);
  36.   draw (0.0, 100.0);
  37.   draw (100.0, 100.0);
  38.   draw (100.0, 0.0);
  39.   draw (0.0, 0.0).
  40.  
  41. ask parameters:
  42.    INT CONST tree depth :: ask int ("Depth? ");
  43.    INT CONST tree angle :: ask int ("Angle? ");
  44.    REAL CONST tree size :: ask real ("Size ? ");
  45.    REAL CONST tree xpos :: ask real ("Xpos ? ");
  46.    REAL CONST tree ypos :: ask real ("Ypos ? ").
  47.  
  48. draw pythagoras tree:
  49.    move (tree xpos, tree ypos);
  50.    pythagoras tree (tree size, tree depth, tree angle).
  51.  
  52. 
  53.  
  54.