Java递归绘图

标签 java recursion

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

虽然我无法找出绘制它的图案。海龟类用于绘制圆圈。 这就是我到目前为止所做到的

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

}

但当然它目前只绘制了这个:My drawing so far

编辑:

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

最佳答案

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

如果我们将其视为一长串自相似的圆,那么一般过程就非常简单了。

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

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

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

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

希望有帮助。

关于Java递归绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995566/

相关文章:

java - 子类中具有不同值的静态参数

php - 使用PHP通过FTP递归扫描目录和子目录

java - 递归将字符移动到字符串末尾

java - 在 servlet 文件内调用时如何检查 getwriter 或 getoutputstream 是否已被使用

java - 两个表的组合来填充距离D算法

r - 在 R 中建立家庭嵌套树父/子关系

c++ - 为什么我的递归函数中的循环是无限的?

c++ - 递归困境

java - 在共享首选项中保存可用余额

java - DistanceMatrix API 的回调函数