gpt4 book ai didi

java - 递归绘图

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:39 24 4
gpt4 key购买 nike

我无法让这个 koch 雪花绘图递归工作。

递归方法

 public void koch(int n, double size) {
if (n == 0) {
t.forward(size);
} else {

koch(n - 1, size / 3); // line 1
stdTort.rotate(60); // line 2
koch(n - 1, size/3); // line 3
stdTort.rotate(120); // line 4
koch(n - 1, size/3); // line 5
stdTort.rotate(60); // line 6
koch(n - 1, size/3); // line 7
}
}

如有任何帮助,我们将不胜感激。

最佳答案

你所有的角度都是错误的,因为它们在你期望它们逆时针旋转的地方顺时针旋转。为了获得图 2 中所示的角度,您实际上需要旋转 120 度,而不是 60 度。然后要获得最终的线条,您需要旋转 -60 度,而不是 60 度。

    koch(n - 1, size / 3);   // line 1
t.rotate(120); // line 2
koch(n - 1, size/3); // line 3
t.rotate(120); // line 4
koch(n - 1, size/3); // line 5
t.rotate(-60); // line 6
koch(n - 1, size/3); // line 7

考虑到这一点,我认为您感到困惑的原因是旋转似乎不直观。如果你的乌龟向前走去做第一条线,那么你会期望从那个方向顺时针或逆时针旋转。但是你的旋转似乎都是从相反的方向开始的。

预期:

        /
-60 = --

+60 = --
\

实际:

-60 = --
/

\
+60 = --

关于java - 递归绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8909394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com