1

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

但是我无法确定绘制它的模式。乌龟类用于绘制圆圈。这是我到目前为止所管理的

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);

}

但当然它现在只画了这个:到目前为止我的画

编辑:

也许一些代码可以提供帮助,这对我来说并不好。

4

1 回答 1

1

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

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

  1. 检查当前行中是否有 n 个圆圈。该行被定义为您的乌龟向前/向后的任何方向。如果您愿意,可以将绘制的圆圈存储在二维列表或数组中,以便于检查。
  2. 如果有n个圆圈,则向右转,否则画一个圆圈并向前移动。

这将从外向内绘制圆圈。如果您希望从内向外进行递归,则可能没有那么有意义,但它会是这样的:

  1. 功能:画圆。如果可以,请右转,否则请继续前进。

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

希望有帮助。

于 2013-04-14T04:11:58.083 回答