16.4 Sierpinski-Dreieck
 
Die Klasse Sierpinski.java Ausgangsgrafik für das Serpinski-Dreieck ist die nebenstehende Figur. Zum Sierpinski-Dreieck selbst kommen wir, wenn wir an die Enden des "Dreisterns" rekursiv fortgesetzt wieder "Dreisterne" mit jeweils halbierter Streckenlänge ansetzt.

Wir erhalten die unten stehende Abbildung:

 

Download:
Sierpinski.java

 

Für die Spezifikation der Turtle-Methoden siehe: TurtleDoc.

public class Sierpinski{
  
   public void zeichne(Turtle t, int l, int xa, int ya){
      if (l>0){
         t.setzeTurtle(xa,ya) ;
         t.rechts(120); t.vor(l); t.setOrientierungsWinkel(0);
         zeichne(t,l/2,t.getTurtleX(),t.getTurtleY());

         t.setzeTurtle(xa,ya);
         t.vor(l);
         zeichne(t,l/2,t.getTurtleX(),t.getTurtleY());

         t.setzeTurtle(xa,ya);
         t.rechts(-120); t.vor(l); t.setOrientierungsWinkel(0);
         zeichne(t,l/2,t.getTurtleX(),t.getTurtleY());
      }
   }
}
Download:
SierpinskiDemo. java

 

"Langsame SierpinskiDemo-Version"

 

 

Neben einigen Namensänderungen wird in BinaerBaumDemo die wir jetzt zu SierpinskiDemo umbenennen wieder nur die Methode actionPerformed(..) verändert:
 
public void actionPerformed(ActionEvent e){
   Sierpinski sierpinski = new Sierpinski();
   sierpinski.zeichne(eineTurtle,140,300,300);
}

In der zeichne()-Methode werden der Reihe nach übergeben: die Turtle-Instanz, der Länge der Strecken der ersten Dreistern-Generation sowie x- und y-Koordinaten (in Pixel) für den Startwert der Turtle. Aus diesem Grund wird bei Erzeugung von eineTurtle in SierpinskiDemo.java lediglich eineTurtle = new Turtle(); aufgerufen.

[Zum Testen sind im Verzeichnis immer die drei Dateien wichtig: Turtle.java - Sierpinski.java - SierpinskiDemo.java]

 

zu den Hausaufgaben
zur Startseite www.pohlig.de  (C) MPohlig 2003