私はタートルグラフィックを使って再帰を介してフラクタルを作成しようとしていますが、何らかの理由で私のコードがタートルを元に戻さないようです。 タートル再帰のエラー
public static void sun(Turtle t, double radius) {
for (int i = 0; i < 360; i++) {
t.forward(radius * .0174);
t.left(1);
}
t.penup();
t.left(90);
t.forward(radius);
//t.fill();
t.pendown();
for (int i = 0; i < 8; i++) {
t.forward(2*radius);
t.backward(2*radius);
t.left(45);
}
t.penup();
t.backward(radius);
t.right(90);
t.pendown();
}
public static void fractalSun(Turtle t, double r, int level) {
int color;
if (level == 0) {
t.color(255, 0, 0);
sun(t, r);
}
else {
sun(t, r);
t.left(90);
t.forward(r);
t.right(90);
t.forward(r * 2);
t.right(90);
fractalSun(t, r/4, level -1);
t.left(90);
t.backward(r * 2);
}
}
コードのコンパイルが成功しますが、この画像を生成し、次のように私のコードは次のとおりです。 Screenshot
亀が各「太陽の何かのISN」の中央に復帰するために私の目標は次のようになりを働いている。
@willizen、私は説明したようにこの仕事をすることができませんでしたか?この変更により、元に戻ったときに不足するという本来の問題が保持され、他のサブルーチンに変更が必要になります。私は、問題が方向性以上のものであると考えています。つまり、戻り値の計算に距離の「r/4」単位がありません。 – cdlane