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    }