Загрузка данных


from turtle import Turtle, Screen

def draw_complex_petal(t, size, depth):
    """
    Рекурсивно рисует сложный лепесток.
    depth — глубина рекурсии (параметр варианта).
    """
    if depth == 0:
        return

    # Основная дуга лепестка
    t.forward(size * 0.3)
    t.left(90)
    t.circle(size, 180)
    t.left(90)
    t.forward(size * 0.6)

    # Внутренняя деталь (меньший лепесток)
    t.left(60)
    draw_complex_petal(t, size * 0.45, depth - 1)
    t.right(120)
    draw_complex_petal(t, size * 0.45, depth - 1)
    t.left(60)

    # Возврат (рекурсия сама восстанавливает положение благодаря стеку вызовов)
    t.backward(size * 0.6)
    t.right(90)
    t.circle(size, -180)   # обратная дуга, чтобы вернуться
    t.right(90)
    t.backward(size * 0.3)

def draw_pattern(t, petals=8, size=70, depth=3):
    """Рисует симметричный узор из повторяющихся сложных лепестков."""
    angle = 360 / petals
    for _ in range(petals):
        draw_complex_petal(t, size, depth)
        t.left(angle)

# === Основная программа ===
screen = Screen()
screen.setup(600, 400)
screen.bgcolor('white')
screen.title('Задание 4 – Вариант 3 (рекурсия)')

t = Turtle()
t.speed(0)
t.pensize(2)
t.color('darkblue')
t.hideturtle()

# Рисуем узор (глубина рекурсии = 3)
draw_pattern(t, petals=8, size=65, depth=3)

screen.exitonclick()