使用递归绘制koch雪花

时间:2017-04-08 01:48:19

标签: java recursion turtle-graphics

我正在尝试为koch递归方法编写代码。我做到了这一点,但我似乎无法弄清楚如何转动乌龟并获得真正的雪花形状。

非常感谢任何形式的解释,谢谢!

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);
        }


     }

1 个答案:

答案 0 :(得分:0)

一种简单的方法是替换:

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);
}

<强>输出

enter image description here