我正在嘗試使用海龜圖形通過遞歸形成一個分形,但由於某種原因,我的代碼似乎沒有將龜揹回到原點。 我的代碼如下海龜遞歸中的錯誤
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