我正在尝试使用海龟图形通过递归形成一个分形,但由于某种原因,我的代码似乎没有将龟背回到原点。 我的代码如下海龟递归中的错误
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