Zdrojový kód k 1. prednáške

Trieda Fraktalka:

import sk.upjs.jpaz2.Turtle;

public class Fraktalka extends Turtle {

        /**
         * Nakresli Kochovu krivku zadanej urovne a dlzky
         *
         * @param u
         *            uroven Kochovej krivky
         * @param d
         *            dlzka Kochovej krivky
         */

        public void kochovaKrivka(int u, double d) {
                if (u == 0) {
                        // Trivialny pripad/baza rekurzie
                        this.step(d);
                } else {
                        // Rekurzivne vnorenia
                        this.kochovaKrivka(u - 1, d / 3);
                        this.turn(-60);
                        this.kochovaKrivka(u - 1, d / 3);
                        this.turn(120);
                        this.kochovaKrivka(u - 1, d / 3);
                        this.turn(-60);
                        this.kochovaKrivka(u - 1, d / 3);
                }
        }

        /**
         * Nekonecna Kochova krivka - utvary dlzky mensej ako 1 pixel nekreslime
         *
         * @param d
         *            dlzka Kochovej krivky
         */

        public void kochovaKrivka(double d) {
                if (d < 1) {
                        // Trivialny pripad/baza rekurzie
                        this.step(d);
                } else {
                        // Rekurzivne vnorenia
                        this.kochovaKrivka(d / 3);
                        this.turn(-60);
                        this.kochovaKrivka(d / 3);
                        this.turn(120);
                        this.kochovaKrivka(d / 3);
                        this.turn(-60);
                        this.kochovaKrivka(d / 3);
                }
        }

        /**
         * Sierpniskeho trojuholnik
         *
         * @param u
         *            uroven Sierpinskeho trojuholnika (pocet rekurzivnych vnoreni)
         *
         * @param d
         *            dlzka strany Sierpinskeho trojuholnika
         */

        public void sierpinski(int u, double d) {
                // Trivialny pripad/baza rekurzie
                if (u == 0) {
                        return;
                }

                // Rekurzivne vnorenia
                for (int i = 0; i < 3; i++) {
                        this.sierpinski(u - 1, d / 2);
                        this.step(d);
                        this.turn(120);
                }
        }
}

Spúšťač:

import sk.upjs.jpaz2.*;

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                WinPane plocha = new WinPane();
                ObjectInspector oi = new ObjectInspector();

                Fraktalka jozka = new Fraktalka();
                plocha.add(jozka);
                oi.inspect(jozka);
                jozka.center();
                jozka.kochovaKrivka(100);
        }

}