Нарисовать снежинку Коха с помощью рекурсии

Я пытаюсь написать код для метода рекурсии Коха. Я сделал это так далеко, но я не могу понять, как повернуть черепаху и получить настоящую форму снежинки.

Любое объяснение будет высоко оценено, спасибо!

import java.awt.Color;


public class Triangle {

    public static void main(String[] args) {
        World myWorld = new World(900,900,Color.GREEN);
        Turtle bob = new Turtle(myWorld);
        bob.setDelay(0);
        //drawTriangle(bob, 4, -200,-100,405,-100,100,350.75);

        koch(bob, 3, 12.0);

    }

     public static void koch(Turtle t, int n, double size) {
        if(n==0)
            t.forward(size);
        else
        {
            koch(t, n-1, size);
            t.left(60);
            koch(t, n-1, size);
            t.right(120);
            koch(t, n-1, size);
            t.left(60);
            koch(t, n-1, size);
        }


     }

person suliman E    schedule 08.04.2017    source источник


Ответы (1)


Одним из простых подходов было бы заменить:

koch(bob, 3, 12.0);

с участием:

koch(bob, 3, 12.0);
bob.right(120);
koch(bob, 3, 12.0);
bob.right(120);
koch(bob, 3, 12.0);

или эквивалентный цикл:

for (int i = 0; i < 3; i++) {
    koch(bob, 3, 12.0);
    bob.right(120);
}

ВЫВОД

введите здесь описание изображения

person cdlane    schedule 08.04.2017