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!