为了确保嵌套圆保持在封闭圆内,最好的策略可能是始终返回到外圆的中心。您应该在您的draw_circle函数中执行此操作。这样你就可以知道乌龟在哪里,它能在不离开包围圈的情况下移动多远。在
绘制外圆(并返回其中心)后,可以转动一个随机量,确定随机较小半径,将随机量从外圆中心向上移动到大半径-较小半径,绘制较小的圆,返回到外圆的中心,然后重复。在
下面是一些代码:from turtle import *
import random
def draw_circle(radius, angle):
circumference = 2 * 3.1415 * radius
side_length = circumference / (360 / angle)
penup()
forward(radius)
right(90)
pendown()
for i in range(360 / angle):
forward(side_length)
right(angle)
penup()
left(90)
backward(radius)
def draw_random_circle(outer_radius, angle):
radius = random.randint(1, outer_radius/2)
distance = random.randint(0, outer_radius - radius)
segment = random.randint(0, 360)
right(segment)
forward(distance)
draw_circle(radius, angle)
backward(distance)
left(segment)
draw_circle(100, 6)
for i in range(10):
draw_random_circle(100, 6)
done()
示例: