public void zeichne()

Werbung
rekursive Grafiken
© 2004 Pohlig Turtle © 2003 Taulien
Reklursive Grafiken
1
© 2004 Pohlig Turtle © 2003 Taulien
Beispiele für Grafische Rekursionen
Reklursive Grafiken
2
© 2004 Pohlig Turtle © 2003 Taulien
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");
}
Reklursive Grafiken
3
© 2004 Pohlig Turtle © 2003 Taulien
Zustände nach diversen Klicks
Zur Erinnerung:
Die API der Turtle
zeigt alle ihre
Methoden
Reklursive Grafiken
4
© 2004 Pohlig Turtle © 2003 Taulien
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);
}
Reklursive Grafiken
5
© 2004 Pohlig Turtle © 2003 Taulien
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.
Reklursive Grafiken
6
© 2004 Pohlig Turtle © 2003 Taulien
Die Turtle erweiteren
Wir bauen eine Klasse RekursionsTurtle, die von Turtle erbt.
import turtle.*;
public class RekursionsTurtle extends Turtle{
public RekursionsTurtle(TurtleWindow tWin){
Merke:
super(tWin);
}
Die erweiterte
Klasse muss l){
im
public void
zeichneBinaerBaum(double
gleichen Ordner liegen, in dem die
if (l>1){
forward(-l);
Klasse liegt, die sie benutzt, es sei
right(90);
forward(l);
left(90);
denn ein
Classpath
ist extra gesetzt
zeichneBinaerBaum(l/2);
right(90); forward(-2*l); left(90);
zeichneBinaerBaum(l/2);
right(90); forward(l); left(90); forward(l);
}
}
}
Reklursive Grafiken
7
© 2004 Pohlig Turtle © 2003 Taulien
import turtle.*;
import java.awt.*;
public class Binaerbaum extends TurtleFrame {
RekursionsTurtle t1;
public Binaerbaum(String title) {
super(title);
t1 = new RekursionsTurtle(tWin);
}
Binärbaum.java
public void zeichne() {
double l = 100;
t1.jumpTo(0,150);
t1.zeichneBinaerBaum(l);
}
}
public static void main (String[] args) {
new Binaerbaum("Binärbaum");
}
Reklursive Grafiken
8
© 2004 Pohlig Turtle © 2003 Taulien
Sierpinski-Dreieck
Reklursive Grafiken
9
© 2004 Pohlig Turtle © 2003 Taulien
Siepinski-Dreieck
public void zeichneSierpinski(double l){
if (l>1) {
forward(l);
zeichneSierpinski(l/2);
forward(-l); right(120); forward(l); left(120);
zeichneSierpinski(l/2);
left(60); forward(l); left(60); forward(l); right(120);
zeichneSierpinski(l/2);
right(60); forward(l); left(60);
}
}
Reklursive Grafiken
10
Herunterladen