Java递归绘图

Java递归绘图,java,recursion,Java,Recursion,这是一个作业,所以我更喜欢解释而不是直接的代码。 任务是像图一样递归地画圆圈 不过我画不出画它的图案。海龟类用来画圆圈。 这就是我到目前为止所做的 private void draw(int level, double size){ if(level < 0) return; turtle.setPenDown(true); turtle.drawOval(size); //Here I think there needs to be code to move to

这是一个作业,所以我更喜欢解释而不是直接的代码。 任务是像图一样递归地画圆圈

不过我画不出画它的图案。海龟类用来画圆圈。 这就是我到目前为止所做的

private void draw(int level, double size){
   if(level < 0) return;
   turtle.setPenDown(true);
   turtle.drawOval(size);
   //Here I think there needs to be code to move to the positions of the other circles?
   draw(level-1,size/2);

}
private void draw(整数级别,双倍大小){
如果(级别<0)返回;
海龟。setPenDown(真);
乌龟。卵形(大小);
//在这里,我认为需要有代码来移动到其他圆圈的位置?
图纸(1级,尺寸/2);
}
但当然,这只是目前的情况:

编辑:


也许一些代码可以帮上忙,这对我来说不太合适。

如果它必须是递归的,那么我会建议如下内容,因为您要求不要让代码返回,所以我只讨论算法

如果我们将其视为一系列自相似的圆,那么一般的过程是非常简单的

  • 检查当前行中是否有n个圆。该行定义为海龟前进/后退的任何方向。如果需要,可以将绘制的圆存储在二维列表或数组中,以便于检查
  • 如果有n个圆,则向右拐,否则画一个圆并向前移动
  • 这将从外向内画出圆圈。如果你想让它从里到外,递归可能就没什么意义了,但它应该是这样的:

  • 功能:画圆。如果可以的话向右拐,否则向前走

  • 当圆圈总数等于n^2时停止


  • 希望这会有所帮助。

    如果它必须是递归的,那么我会建议如下内容,因为您要求不要返回代码,所以我只会谈论算法

    如果我们将其视为一系列自相似的圆,那么一般的过程是非常简单的

  • 检查当前行中是否有n个圆。该行定义为海龟前进/后退的任何方向。如果需要,可以将绘制的圆存储在二维列表或数组中,以便于检查
  • 如果有n个圆,则向右拐,否则画一个圆并向前移动
  • 这将从外向内画出圆圈。如果你想让它从里到外,递归可能就没什么意义了,但它应该是这样的:

  • 功能:画圆。如果可以的话向右拐,否则向前走

  • 当圆圈总数等于n^2时停止


  • 希望能有所帮助。

    级别是什么意思?每个级别有多少个圆?它必须是递归的吗?这个任务实际上并没有让我觉得递归是有用的。在0级,有1个圆圈,在1级有4个圆圈,在2级有16个圆圈。对于赋值,是的。无论它是否实用,可能不是……这都很容易做到。通过
    amt=1的圈数水平是什么意思?每个级别有多少个圆?它必须是递归的吗?这个任务实际上并没有让我觉得递归是有用的。在0级,有1个圆圈,在1级有4个圆圈,在2级有16个圆圈。对于赋值,是的。无论它是否实用,可能不是……这都很容易做到。通过
    amt=1的圈数谢谢:)如果我只是填鸭式地输入代码,它可能会破坏整个作业要点。我试试看会发生什么@Lift您还可以在递归函数中包含一个双for循环(运行到^2级),该函数确定圆的位置,然后向下传递级别。谢谢:)如果我只是填鸭式地输入代码,它可能会破坏整个赋值点。我试试看会发生什么@您还可以在递归函数(运行到级别^2)中包含一个双for循环,该函数确定圆的位置,然后向下传递级别。