Глава 7 · Глубокое погружение в Turtle

Перо и заливка — не одно и то же

Контур фигуры и её внутренняя область красятся разными командами — разбираемся, какая за что отвечает.

Мы уже пользовались и pencolor(), и fillcolor() по отдельности — но важно чётко понимать, что это два разных цвета, отвечающих за разное.

Контур — это не то же самое, что заливка

КомандаЗа что отвечает
pencolor()цвет ЛИНИИ — границы фигуры
fillcolor()цвет ЗАЛИВКИ — области внутри фигуры (виден только между begin_fill()/end_fill())
color()задаёт оба сразу: color(контур, заливка)
tolko_pencolor.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=320)
artist = turtle.Turtle()
artist.pensize(4)
artist.pencolor("blue")

for _ in range(4):
    artist.forward(120)
    artist.right(90)

screen.exitonclick()
Результат выполнения
Квадрат, нарисованный только синим контуром, без заливки внутри
pencolor("blue") без fillcolor — только контур, заливки нет
tolko_pencolor_kod.py
artist.pencolor("blue")

for _ in range(4):
    artist.forward(120)
    artist.right(90)

Оба цвета одной командой

color_vmeste.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=320)
artist = turtle.Turtle()
artist.pensize(4)
artist.color("blue", "gold")

artist.begin_fill()
for _ in range(4):
    artist.forward(120)
    artist.right(90)
artist.end_fill()

screen.exitonclick()
Результат выполнения
Тот же квадрат с синим контуром, но теперь с золотой заливкой внутри
color("blue", "gold") задаёт И контур, И заливку одной командой
color_vmeste_kod.py
artist.color("blue", "gold")   # (контур, заливка)

artist.begin_fill()
for _ in range(4):
    artist.forward(120)
    artist.right(90)
artist.end_fill()
color() без аргументов — узнать текущие цвета
artist.color() без аргументов возвращает пару (pencolor, fillcolor) — удобно для отладки, если непонятно, почему фигура выглядит не так, как ожидалось.
Практика: перо и заливка
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Открыть практику →