有一个任务是画一个圆,在里面再画6个圆,每个圆再画6个……等等,像这样:
.
应该使用python turtle和递归方法制作。
不知道我应该从哪里开始。我知道,乌龟是如何工作的,但递归对我来说是一个绊脚石。有人可以解释算法吗?谢谢!
既然你问的是算法,我就贴伪代码吧
def circles(outer_x, outer_y, outer_radius, depth):
draw outer circle centered at outer_x, outer_y
# End recursion when depth is 0
if depth == 0:
return
inner_radius = calculate inner circles' radius
for c in range(6):
inner_x, inner_y = calculate center for inner circle #c
# Recursion happens here.
circles(inner_x, inner_y, inner_radius, depth - 1)
请注意,Turtle 不会从中心点而是从最底部的点渲染圆。所以制作一个从中心点画圆的函数可能会有用。
如果你想要一些实际的工作代码,请发表评论,我会尝试发布一些东西。