Reklursive Grafiken Teil I rekursive Grafiken Februar 19 Reklursive Grafiken Teil I
Beispiele für Grafische Rekursionen Februar 19 Reklursive Grafiken Teil I
Zur Erinnerung: Wie zeichnen wir mit der Turtle import turtle.*; import java.awt.*; public class Quadrat1 extends TurtleFrame { Turtle t1; public Quadrat1(String title) { super(title); t1 = new Turtle(tWin); } public void zeichne() { t1.forward(100); t1.right(90); public static void main (String[] args) { new Quadrat1("Quadrat1"); Februar 19 Reklursive Grafiken Teil I
Die Turtle zeichnet ein T auf dem Kopf public void zeichne() { t1.jumpTo(0,150); t1.forward(-100); t1.right(90); t1.forward(100); t1.forward(-200); } Februar 19 Reklursive Grafiken Teil I
Reklursive Grafiken Teil I BinärBaum public void zeichne() { double l = 100; t1.jumpTo(0,150); t1.zeichneBinaerBaum(l); } Die Turtle muss dazulernen. – Wir haben aber keinen Zugriff auf die Klasse Turtle im Paket turtle. Februar 19 Reklursive Grafiken Teil I
Reklursive Grafiken Teil I Die Turtle erweiteren Wir bauen eine Klasse RekursionsTurtle, die von Turtle erbt. import turtle.*; public class RekursionsTurtle extends Turtle{ public RekursionsTurtle(TurtleWindow tWin){ super(tWin); } public void zeichneBinaerBaum(double l){ if (l>1){ forward(-l); right(90); forward(l); left(90); zeichneBinaerBaum(l/2); right(90); forward(-2*l); left(90); right(90); forward(l); left(90); forward(l); Merke: Die erweiterte Klasse muss im gleichen Ordner liegen, in dem die Klasse liegt, die sie benutzt, es sei denn ein Classpath ist extra gesetzt Februar 19 Reklursive Grafiken Teil I
Reklursive Grafiken Teil I Binärbaum.java import turtle.*; import java.awt.*; public class Binaerbaum extends TurtleFrame { RekursionsTurtle t1; public Binaerbaum(String title) { super(title); t1 = new RekursionsTurtle(tWin); } public void zeichne() { double l = 100; t1.jumpTo(0,150); t1.zeichneBinaerBaum(l); public static void main (String[] args) { new Binaerbaum("Binärbaum"); Februar 19 Reklursive Grafiken Teil I
Reklursive Grafiken Teil I Sierpinski-Dreieck Februar 19 Reklursive Grafiken Teil I
Reklursive Grafiken Teil I Siepinski-Dreieck public void zeichneSierpinski(double l){ if (l>1) { forward(l); zeichneSierpinski(l/2); forward(-l); right(120); forward(l); left(120); left(60); forward(l); left(60); forward(l); right(120); right(60); forward(l); left(60); } Februar 19 Reklursive Grafiken Teil I