使用 turtle 模块递归绘制圆圈

问题描述 投票:0回答:1

有一个任务是画一个圆,在里面再画6个圆,每个圆再画6个……等等,像这样:

image.

应该使用python turtle和递归方法制作。

不知道我应该从哪里开始。我知道,乌龟是如何工作的,但递归对我来说是一个绊脚石。有人可以解释算法吗?谢谢!

python recursion geometry turtle-graphics
1个回答
0
投票

既然你问的是算法,我就贴伪代码吧

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 不会从中心点而是从最底部的点渲染圆。所以制作一个从中心点画圆的函数可能会有用。

如果你想要一些实际的工作代码,请发表评论,我会尝试发布一些东西。

© www.soinside.com 2019 - 2024. All rights reserved.