In der paint()-Methode erfolgen in einer Schleife
- viele Aufrufe der Kochkurve. Nach jedem Aufruf wird der Winkel um
erhöht.
import java.awt.*;
import java.awt.event.*;
public class NKoch extends Frame {
static int anzahl;
static int laenge;
static int ebenen;
public void paint (Graphics g) {
Turtle t = new Turtle(this,50,100);
for (int i=0; i<anzahl; i++) {
kochkurve(t, laenge, ebenen);
t.rt(-360/anzahl);
}
}
static void kochkurve(Turtle t, double strecke, int ebene) {
if (ebene > 0) {
kochkurve (t, strecke/3, ebene - 1);
t.rt(60);
kochkurve(t, strecke/3, ebene -1);
t.rt(-120);
kochkurve(t, strecke/3, ebene -1);
t.rt(60);
kochkurve(t, strecke/3, ebene -1);
} else t.fd(strecke);
}
public static void main(String [] args) {
if (args.length < 3) {
System.out.println("Aufruf: % java NKoch anzahl laenge ebenen");
System.exit(0);
}
anzahl = Integer.parseInt(args[0]);
laenge = Integer.parseInt(args[1]);
ebenen = Integer.parseInt(args[2]);
NKoch kprog = new NKoch();
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("... und aus ;-)");
System.exit(0);
}
};
kprog.addWindowListener(wl);
kprog.setTitle("Kochkurven: " + anzahl + " -eck");
kprog.setLocation(100,100);
kprog.setSize(300,300);
kprog.show();
}
}
Beachte die Überprüfung, ob tatsächlich 3 Parameter übergeben wurden!