Глава 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()
Результат выполнения
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
Практика выполняется локально