Глава 12 · Множество увлекательных мини-проектов!

Проект: сложная мандала — полностью автоматизированная

Финальная версия мандалы из глав 6 и 10 — со случайными цветами и кругами на концах лучей.

Используем
Turtleforrandom.choice
Уровень
★★★★ challenge
Результат
графика Turtle · генеративное искусство

Что создаём

Финальная эволюция мандалы из глав 6 и 10 — добавим случайный цвет на каждый луч и сделаем полностью автоматической, без единого «магического числа», прописанного вручную.

Как строится узор: от одного луча к полной мандале

Тот же принцип поэтапного построения, что и в главе 10: сначала один элемент, потом несколько, потом полный узор.

odin_luch.py
artist.circle(20)
artist.forward(150)
artist.forward(-150)
slozhnaya_mandala.py
import turtle
import random

random.seed(11)
screen = turtle.Screen()
screen.setup(width=420, height=420)
artist = turtle.Turtle()
artist.speed(0)

luchi = 36
shag_ugla = 360 / luchi
cveta = ["red", "orange", "purple", "blue", "green"]

for i in range(luchi):
    artist.pencolor(random.choice(cveta))
    artist.setheading(i * shag_ugla)
    artist.forward(150)
    artist.circle(20)
    artist.forward(-150)

screen.exitonclick()
Результат выполнения
Сложная мандала Turtle из 36 лучей случайных цветов с кругами на концах
36 лучей, случайный цвет на каждом (seed зафиксирован для документации)
slozhnaya_mandala.py
import random

luchi = 36
shag_ugla = 360 / luchi
cveta = ["red", "orange", "purple", "blue", "green"]

for i in range(luchi):
    artist.pencolor(random.choice(cveta))
    artist.setheading(i * shag_ugla)
    artist.forward(150)
    artist.circle(20)
    artist.forward(-150)
luchi определяет всё остальное
Измените только luchi — угол шага, число повторов цикла и даже плотность узора пересчитаются автоматически, ничего больше менять не нужно. Это и называется «полностью автоматизировано».
Практика: сложная мандала со случайными цветами
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →