Peano-Hilbert-Kurven III

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Hilbert.m2
PROCEDURE Hilbert(level: CARDINAL);
   (* Hilbert curve (L -> +RF-LFL-FR+, R -> -LF+RFR+FL-) *)

   PROCEDURE L(n: CARDINAL);
   BEGIN
      IF n > 0 THEN DEC(n);
         Left; R(n); Forward; Right; L(n);
         Forward; L(n); Right; Forward; R(n); Left;
      END;
   END L;

   PROCEDURE R(n: CARDINAL);
   BEGIN
      IF n > 0 THEN DEC(n);
         Right; L(n); Forward; Left; R(n);
         Forward; R(n); Left; Forward; L(n); Right;
      END;
   END R;

BEGIN Init; L(level); Finish;
END Hilbert;

*Die Ersetzungsregeln können unmittelbar übernommen werden.
 
*Jede der rekursiven Prozeduren erhält dabei einen Parameter n, der der noch fehlenden Rekursionstiefe entspricht.
 
*Bei n = 0 wird auf die Ausgabe von Anweisungen verzichtet.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999