001 package de.hska.java.aufgaben.schildkroete;
002
003 import de.hska.java.aufgaben.grafik.schildkroete.Schildkroete;
004 import de.hska.java.aufgaben.grafik.schildkroete.SchildkroetenGrafik;
005
006
007 /**
008 * Zeichnet die Drachenkurve auf den Bildschirm.
009 *
010 * <a href="http://www.home.hs-karlsruhe.de/%7Epach0003/informatik_1/aufgaben/turtle.html#koch">Zurück zum Aufgabentext</a>
011 *
012 * @author Christian Pape
013 */
014 public class ZeichneKochkurve {
015
016 public static void main(String[] args) {
017 SchildkroetenGrafik schildkroetenGrafik = new SchildkroetenGrafik("Kochkurve", 800, 480);
018 Schildkroete schildkroete = schildkroetenGrafik.createSchildkroete();
019 schildkroete.positionieren(0, 300);
020
021 kochkurveZeichnen(schildkroete, 800);
022
023 schildkroetenGrafik.warten();
024 }
025
026 private static void kochkurveZeichnen(Schildkroete schildkroete, double laenge) {
027 if (laenge <= 1.0) {
028 schildkroete.laufen(laenge);
029 } else {
030 kochkurveZeichnen(schildkroete, laenge / 3.0);
031 schildkroete.drehen(60.0);
032 kochkurveZeichnen(schildkroete, laenge / 3.0);
033 schildkroete.drehen(-120.0);
034 kochkurveZeichnen(schildkroete, laenge / 3.0);
035 schildkroete.drehen(60.0);
036 kochkurveZeichnen(schildkroete, laenge / 3.0);
037 }
038 }
039
040
041 }