Глава 6 · Рисуем классные вещи с помощью Turtle
Заливка, круг, дуга и точка
От пустого контура — к закрашенным фигурам, готовым окружностям, дугам и точкам.
Заливка фигур
Контур — это ещё не всё: часто фигуру хочется закрасить внутри. Для этого черепашке нужно «запомнить», где начинается контур, и «отпустить», когда контур замкнётся.
kontur_treugolnika.py
import turtle
screen = turtle.Screen()
screen.setup(width=380, height=360)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
screen.exitonclick()
Результат выполнения
zalityj_treugolnik.py
import turtle
screen = turtle.Screen()
screen.setup(width=380, height=360)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")
artist.fillcolor("#B9A0FC")
artist.begin_fill()
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
artist.end_fill()
screen.exitonclick()
Результат выполнения
zalivka_kod.py
artist.pencolor("#5B24F9")
artist.fillcolor("#B9A0FC")
artist.begin_fill()
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
artist.forward(140)
artist.left(120)
artist.end_fill()
Как это работает
begin_fill() запоминает точку старта. Затем обычные команды рисования (forward(), left() и другие) вычерчивают замкнутый контур, как обычно. end_fill() закрашивает область внутри этого контура цветом fillcolor().circle() — готовая команда для окружностей
Рисовать круг вручную (много маленьких прямых под небольшим углом) не нужно — есть готовая команда:
krug.py
import turtle
screen = turtle.Screen()
screen.setup(width=380, height=380)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")
artist.circle(80)
screen.exitonclick()
Результат выполнения
krug_kod.py
artist.circle(80) # радиус в пикселях
Дуга — часть окружности
Второй, необязательный аргумент circle() — это
extent, сколько градусов окружности рисовать:
duga.py
import turtle
screen = turtle.Screen()
screen.setup(width=380, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")
artist.circle(80, 90)
screen.exitonclick()
Результат выполнения
duga_kod.py
artist.circle(80, 90) # радиус 80, но только 90° из 360°
dot() — точка без движения
В отличие от всех предыдущих команд, dot() не двигает черепашку
ни на пиксель — она просто ставит закрашенный кружок в текущей позиции:
tochki.py
import turtle
screen = turtle.Screen()
screen.setup(width=380, height=260)
artist = turtle.Turtle()
artist.hideturtle()
artist.penup()
artist.goto(-100, 0); artist.dot(20, "#5B24F9")
artist.goto(0, 0); artist.dot(30, "#DB2777")
artist.goto(100, 0); artist.dot(40, "#059669")
screen.exitonclick()
Результат выполнения
tochki_kod.py
artist.dot(20, "#5B24F9")
artist.forward(100)
artist.dot(30, "#DB2777")
Практика: заливка, круг, дуга и точка
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально