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

Геометрия окружности

circle() — не магия: у неё есть точная геометрия, которую полезно понимать, а не просто запомнить как заклинание.

circle() выглядит как одна простая команда, но за ней стоит настоящая геометрия — разберём её по-настоящему, а не как «магическую» функцию.

Где на самом деле центр

Официальное поведение circle(radius): центр окружности находится на расстоянии radius слева от черепашки (относительно направления её курса) — не в текущей позиции черепашки, как можно было бы подумать:

центрradiusчерепашка
Центр окружности находится на расстоянии radius слева от черепашки — не там, где сама черепашка стоит
Один конец дуги — там, где стоит черепашка
Если нарисовать не полную окружность, а дугу (extent меньше 360°) — одним из концов дуги всегда будет текущая позиция черепашки. Это удобно: не нужно заранее вычислять, откуда начнётся дуга.

Положительный и отрицательный радиус

Положительный радиус рисует окружность против часовой стрелки; отрицательный — по часовой, с тем же радиусом по модулю:

krug_polozhitelnyj.py
import turtle

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

artist.circle(80)

screen.exitonclick()
Результат выполнения
Окружность, нарисованная фиолетовым цветом против часовой стрелки
circle(80) — положительный радиус, против часовой стрелки
krug_otricatelnyj.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=320)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#DB2777")

artist.circle(-80)

screen.exitonclick()
Результат выполнения
Окружность того же размера, нарисованная розовым цветом по часовой стрелке
circle(-80) — тот же радиус по модулю, но по часовой стрелке
napravlenie_kod.py
artist.circle(80)    # против часовой стрелки
artist.circle(-80)   # по часовой стрелке — тот же размер, другое направление
Направление меняет и курс черепашки в конце
После полной окружности курс черепашки возвращается к исходному в обоих случаях. Но если рисовать дугу (не полный круг), финальный курс будет РАЗНЫМ для положительного и отрицательного радиуса — черепашка развернётся в противоположные стороны.
Практика: геометрия окружности
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Открыть практику →