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

Проект: спирали!

Один и тот же принцип — пять разных узоров, в зависимости от угла поворота.

Используем
Turtleforrandom (одна из версий)
Уровень
★★★ интеграционный
Результат
графика Turtle · генеративное искусство

Что создаём

Пять вариаций одной идеи — фигура, каждый шаг которой немного больше предыдущего. Один принцип из главы 10 («шаг + поворот + увеличение переменной»), пять углов поворота.

Квадратная спираль

kvadratnaya_spiral.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=480)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")
artist.pensize(2)

dlina = 5
for _ in range(60):
    artist.forward(dlina)
    artist.right(90)
    dlina += 3

screen.exitonclick()
Результат выполнения
Квадратная спираль Turtle
right(90) на каждом шаге

Случайная спираль

sluchaynaya_spiral.py
import turtle
import random

random.seed(4)
screen = turtle.Screen()
screen.setup(width=480, height=480)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#DB2777")
artist.pensize(2)

dlina = 5
for _ in range(60):
    artist.forward(dlina)
    artist.right(random.randint(80, 100))
    dlina += 3

screen.exitonclick()
Результат выполнения
Спираль со случайно дрожащим углом поворота
Угол «дрожит» случайно в диапазоне 80-100°

Треугольная спираль

treugolnaya_spiral.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=480)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#059669")
artist.pensize(2)

dlina = 5
for _ in range(60):
    artist.forward(dlina)
    artist.right(120)
    dlina += 3

screen.exitonclick()
Результат выполнения
Треугольная спираль Turtle
right(120) на каждом шаге

Звёздная спираль

zvezdnaya_spiral.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=480)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")
artist.pensize(2)

dlina = 5
for _ in range(100):
    artist.forward(dlina)
    artist.right(144)
    dlina += 2

screen.exitonclick()
Результат выполнения
Звёздная спираль Turtle
right(144) — угол пятиконечной звезды

Круговая спираль

krugovaya_spiral.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=480)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#DB2777")
artist.pensize(2)

radius = 5
for _ in range(60):
    artist.circle(radius, 90)
    radius += 3

screen.exitonclick()
Результат выполнения
Круговая спираль из дуг Turtle
circle(radius, 90) с растущим радиусом
Один общий принцип
Все пять спиралей — одна и та же идея из главы 10 («шаг + поворот + увеличение переменной») с разным углом поворота. Освоив один вариант, вы фактически освоили все пять.
Практика: спирали
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →