Чтобы убедиться, что вложенные круги остаются в окружении, лучшей стратегией может быть всегда возвращение в центр внешнего круга. Вы должны сделать это в своей функции 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()
Пример:
![enter image description here](https://i.stack.imgur.com/2K3EG.png)