Глава 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()управляют тем, рисуется ли линия при движении.