home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / crm_demo / p_pascal / turtle / sierpins.pas < prev    next >
Pascal/Delphi Source File  |  1992-05-27  |  948b  |  54 lines

  1. PROGRAM Sierpinski;
  2.  
  3. USES Turtles;
  4.  
  5. TYPE    TurtleGraphik    =    OBJECT(Turtle)
  6.                                 PROCEDURE Sierpinski(Grad, Seite : WORD);
  7.                             END;
  8.  
  9. PROCEDURE TurtleGraphik.Sierpinski(Grad, Seite : WORD);
  10. VAR    i    : WORD;
  11.     PROCEDURE Kern(Grad, Seite : WORD);
  12.     VAR    Seite2    : WORD;
  13.     BEGIN
  14.         IF Grad > 0 THEN
  15.         BEGIN
  16.             DEC(Grad);
  17.             Seite2    := ROUND(Seite * SQRT(2.0));
  18.             Kern(Grad, Seite);
  19.             Right(135);
  20.             Forward(Seite);
  21.             Left(45);
  22.             Kern(Grad, Seite);
  23.             Forward(Seite2);
  24.             Left(180);
  25.             Kern(Grad, Seite);
  26.             Right(135);
  27.             Forward(Seite);
  28.             Left(45);
  29.             Kern(Grad, Seite)
  30.         END
  31.     END;
  32. BEGIN
  33.     FOR i:=1 TO 4 DO
  34.     BEGIN
  35.         Kern(Grad, Seite);
  36.         Right(135);
  37.         Forward(Seite);
  38.         Left(45)
  39.     END
  40. END;
  41.  
  42. VAR    MyTurtle    : TurtleGraphik;
  43.  
  44. BEGIN
  45.     MyTurtle.Init;
  46.     IF NOT(MyTurtle.Error) THEN
  47.     BEGIN
  48.         MyTurtle.Default(-975, 975, 90);
  49.         MyTurtle.Hide;
  50.         MyTurtle.Sierpinski(6, 10);
  51.         MyTurtle.Show;
  52.         MyTurtle.Done
  53.     END
  54. END.