Глава 6 · Рисуем классные вещи с помощью Turtle

Мини-проект — рисуем мандалу только из прямых линий

Собираем все приёмы главы в одном узоре — и подводим итоги.

Соберём все приёмы главы в одном мини-проекте: мандалу, составленную только из прямых линий, — множество отрезков одинаковой длины, каждый раз повёрнутых на небольшой угол.

mandala.py
import turtle

screen = turtle.Screen()
artist = turtle.Turtle()
artist.speed(0)  # максимальная скорость рисования

shag_ugla = 10
ugol = 0
while ugol < 360:
    artist.setheading(ugol)
    artist.forward(150)
    artist.backward(150)
    ugol += shag_ugla

screen.exitonclick()
Забегаем вперёд
Цикл while подробно разберём в главе 10 — здесь достаточно увидеть, что setheading() из раздела 6.3 позволяет нарисовать сложный узор всего в нескольких строках, перебирая углы от 0 до 360.
★ Базовая практика
Другой шаг угла

Измените shag_ugla на 5 или на 30 — как меняется узор?

★★ Самостоятельная задача
Другая длина луча

Измените длину forward(150) — попробуйте 80 и 250.

★★★ Задача повышенной сложности
Цветная мандала

Добавьте artist.pencolor("violet") перед циклом и поэкспериментируйте с другими цветами.

Итоги

Что мы узнали в этой главе

  • Экран (turtle.Screen()) и черепашка (turtle.Turtle()) — два разных объекта.
  • forward()/backward() двигают черепашку; left()/right() поворачивают её курс относительно текущего направления.
  • setheading() задаёт направление абсолютно, home() возвращает черепашку в начало координат.
  • Угол поворота для правильного многоугольника — 360 / количество_сторон.
  • goto(x, y) перемещает черепашку в конкретную точку экрана; penup()/pendown() управляют тем, рисуется ли линия при движении.