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

circle(steps=...) — от круга к многоугольнику

Секрет circle(): под капотом это всегда многоугольник — просто иногда с очень большим числом сторон.

Вот секрет, который многое объясняет: circle() на самом деле не умеет рисовать идеальную окружность — она приближает её правильным многоугольником со множеством маленьких сторон. Третий аргумент, steps, позволяет управлять числом этих сторон явно.

От треугольника до шестиугольника — тот же радиус

steps_3.py
import turtle

screen = turtle.Screen()
screen.setup(width=320, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.circle(80, steps=3)

screen.exitonclick()
Результат выполнения
Треугольник, вписанный в невидимую окружность радиусом 80
circle(80, steps=3) — окружность, приближённая треугольником
steps_4.py
import turtle

screen = turtle.Screen()
screen.setup(width=320, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.circle(80, steps=4)

screen.exitonclick()
Результат выполнения
Квадрат, вписанный в невидимую окружность радиусом 80
circle(80, steps=4) — тот же радиус, но 4 стороны вместо 3
steps_6.py
import turtle

screen = turtle.Screen()
screen.setup(width=320, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.circle(80, steps=6)

screen.exitonclick()
Результат выполнения
Правильный шестиугольник, вписанный в невидимую окружность радиусом 80
circle(80, steps=6) — 6 сторон, уже больше похоже на окружность
circle_steps_kod.py
artist.circle(80, steps=3)   # треугольник
artist.circle(80, steps=4)   # квадрат
artist.circle(80, steps=6)   # шестиугольник
Мост к формуле 360/n из главы 6
Это та же самая идея правильного многоугольника, что мы строили вручную в главе 6 через forward()/right(360 / n). circle(radius, steps=n) — просто более короткий способ получить тот же результат, если известен нужный радиус описанной окружности.
А если steps не указан?
Если steps не задан, Turtle сам подбирает достаточно большое число сторон, чтобы многоугольник выглядел гладкой окружностью — обычно несколько десятков. Мы просто не замечаем, что это тоже многоугольник.
Практика: circle(steps=...) как многоугольник
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Открыть практику →
Практика: предскажите многоугольник по steps (без Turtle)
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →