Гид по технологиям

Рисование фигур в Python с помощью модуля turtle

5 min read Python Обновлено 06 Dec 2025
Рисование фигур в Python с turtle
Рисование фигур в Python с turtle

Кратко: модуль turtle в Python — простой графический инструмент для обучения и визуализации. В этой статье показано, как настроить холст, создать несколько «черепашек», рисовать квадраты, прямоугольники, треугольники, круги и многоугольники, а также даны приёмы автоматизации, шаблоны кода, чек-листы для преподавателя и учащегося и советы по отладки.

Подсвеченный код Python в редакторе

Введение

Модуль turtle входит в стандартную библиотеку Python и предоставляет простой интерфейс для рисования на экране. Он особенно полезен для обучения основам программирования, геометрии и алгоримтики: вы управляете «черепашкой» — курсором, который оставляет след при движении.

Определение: черепашка — объект, представляющий точку/курсор на холсте, которым можно управлять функциями движения и рисования.

Почему это полезно

  • Видимый отклик на команды помогает понять управление потоком и циклы.
  • Можно иллюстрировать векторы, углы и преобразования в 2D.
  • Подходит для быстрых визуальных прототипов небольших графических задач.

Важно: turtle ориентирован на образовательные и простые графические задачи; для производительной графики или сложной анимации лучше рассмотреть Pygame, Matplotlib или OpenGL.

Что потребуется

  • Установленный Python 3.x (3.7+ рекомендуется). Модуль turtle входит в стандартную библиотеку, дополнительной установки обычно не требуется.
  • Терминал/командная строка для запуска скрипта.

Быстрое начало: минимальный скрипт

Создайте файл shapes.py и вставьте следующий минимальный код, затем запустите python shapes.py:

import turtle

window = turtle.Screen()
window.bgcolor("white")

turtle_1 = turtle.Turtle()
turtle_1.shape("turtle")
turtle_1.color("red")

window.exitonclick()

Пояснения к коду:

  • turtle.Screen() — создаёт окно-холст.
  • Turtle() — создаёт объект-черепашку.
  • shape() и color() задают внешний вид курсора и цвет линии.
  • exitonclick() держит окно открытым до клика мышью.

Краткая проверка окружения

  • В Windows: откройте cmd и перейдите в папку со скриптом: cd C:\Users\ВашеИмя\Desktop
  • Запустите: python shapes.py

Холст turtle с черепашкой в исходном положении

Как рисовать квадраты и прямоугольники

Основные команды движения:

  • forward(n) — двигаться вперёд на n пикселей.
  • backward(n) — назад на n пикселей.
  • left(angle) / right(angle) — повернуть на угол в градусах.
  • penup() / pendown() — поднять/опустить перо, чтобы двигать без рисования.

Пример: квадрат со стороной 100 пикселей

turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(100)

Упрощение через цикл:

for _ in range(4):
    turtle_1.forward(100)
    turtle_1.right(90)

Прямоугольник (например, 100×200):

for side in [100, 200, 100, 200]:
    turtle_1.forward(side)
    turtle_1.right(90)

Совет: если вы рисуете несколько фигур, используйте penup() и goto(x, y), чтобы переместить черепашку без линии.

Холст: черепашка рисует прямоугольник

Как рисовать треугольники

Равносторонний треугольник рисуется поворотами на 120° (360/3).

Пример пошагово:

import turtle

turtle_2 = turtle.Turtle()
turtle_2.shape("arrow")
turtle_2.color("blue")

turtle_2.penup()
turtle_2.goto(-250, 200)
turtle_2.pendown()

for _ in range(3):
    turtle_2.forward(100)
    turtle_2.left(120)

Преимущества цикла: легко менять число сторон и длину.

Холст: черепашка рисует треугольник

Как рисовать круги

Метод turtle.circle(radius) рисует окружность. Заметьте: аргумент — радиус, а не диаметр.

Пример:

turtle_3 = turtle.Turtle()
turtle_3.shape("circle")
turtle_3.color("green")

turtle_3.penup()
turtle_3.goto(-100, 50)

turtle_3.pendown()

turtle_3.circle(50)  # радиус 50 пикселей

Совет: увеличивая аргумент, вы получите больший круг. Чтобы нарисовать дугу, можно передать второй аргумент — угол: turtle_3.circle(50, 180) — полуокружность.

Холст: черепашка рисует круг

Как рисовать шести- и восьмиугольники и другие правильные многоугольники

Правильный n-угольник можно рисовать циклом: поворот равен 360 / n градусов.

Пример: шестиугольник

turtle_4 = turtle.Turtle()
turtle_4.shape("turtle")
turtle_4.color("purple")

turtle_4.penup()
turtle_4.goto(150, 200)
turtle_4.pendown()

for _ in range(6):
    turtle_4.forward(100)
    turtle_4.right(60)  # 360/6

Октагон:

for _ in range(8):
    turtle_4.forward(100)
    turtle_4.right(45)  # 360/8

Холст: черепашка рисует восьмиугольник

Универсальная функция для правильного многоугольника

def draw_regular_polygon(t, sides, length):
    angle = 360 / sides
    for _ in range(sides):
        t.forward(length)
        t.right(angle)

Применение:

draw_regular_polygon(turtle_4, 5, 80)  # пятиугольник

Полезные параметры и методы (шпаргалка)

  • speed([0..10]) — скорость черепашки, 0 — мгновенно.
  • pensize(n) — толщина линии.
  • pencolor(“color”) — цвет линии (строка или RGB через .colormode()).
  • fillcolor() / begin_fill() / end_fill() — заливка фигуры.
  • heading() — текущий угол направления.
  • position() / xcor() / ycor() — координаты.

Пример заливки квадрата:

turtle_1.fillcolor("yellow")
turtle_1.begin_fill()
for _ in range(4):
    turtle_1.forward(100)
    turtle_1.right(90)
turtle_1.end_fill()

Практические рецепты и шаблоны

Полный файл shapes.py, объединяющий примеры (скопируйте и запустите):

import turtle

window = turtle.Screen()
window.bgcolor("white")

# Красная черепашка — квадрат и прямоугольник
red = turtle.Turtle()
red.shape("turtle")
red.color("red")
red.speed(4)

# Рисуем квадрат
red.penup()
red.goto(-200, -50)
red.pendown()
for _ in range(4):
    red.forward(100)
    red.right(90)

# Синий — треугольник
blue = turtle.Turtle()
blue.shape("arrow")
blue.color("blue")
blue.penup()
blue.goto(-250, 200)
blue.pendown()
for _ in range(3):
    blue.forward(100)
    blue.left(120)

# Зелёный — круг
green = turtle.Turtle()
green.shape("circle")
green.color("green")
green.penup()
green.goto(-50, 50)
green.pendown()
green.circle(50)

# Фиолетовый — шестиугольник
purple = turtle.Turtle()
purple.shape("turtle")
purple.color("purple")
purple.penup()
purple.goto(150, 200)
purple.pendown()
for _ in range(6):
    purple.forward(70)
    purple.right(60)

window.exitonclick()

Отладка и типичные ошибки

  • Ничего не происходит: убедитесь, что вы запускаете правильный файл и что окно не закрыто.
  • Программа завершилась сразу: проверьте наличие window.exitonclick() в конце.
  • Фигуры «перепутаны» или налезают друг на друга: используйте penup() и goto(x, y) для позиционирования.
  • Углы выглядят некорректно: убедитесь, что повороты составляют 360/n градусов для правильного n-угольника.

Важно: иногда при запуске в интегрированных средах (IDE) поведение окна turtle отличается. Для стабильности запускайте скрипт в отдельном процессе python из терминала.

Альтернативы и когда turtle не подходит

Когда использовать другие инструменты:

  • Pygame — когда нужна интерактивность и обработка событий в играх.
  • Matplotlib — для построения графиков и визуализации данных.
  • Tkinter/Canvas — для создание GUI с графическими элементами.

Тurtle отлично подходит для обучения, быстрых визуализаций и демонстраций геометрии.

Мини-методология: как спроектировать новую фигуру

  1. Определите форму: сколько сторон, есть ли дуги.
  2. Разбейте на примитивы: прямые, дуги, перемещения без рисования.
  3. Опишите маршрут в виде последовательности команд forward/turn или использования circle.
  4. Инкапсулируйте в функцию с аргументами (позиция, размер, цвет).
  5. Протестируйте на нескольких позициях и размерах.

Критерии приёмки

  • Скрипт запускается без ошибок в Python 3.
  • Каждая фигура рисуется на отдельной области холста и не перекрывается (если это не требуется).
  • Используются функции/циклы для повторяющихся действий.
  • Окно остаётся открытым до клика мышью.

Ролевые чек-листы

Для преподавателя:

  • Подготовить файл с комментариями и задачами для учеников.
  • Убедиться, что в среде установлен Python 3.
  • Продемонстрировать базовые команды и цикл for.

Для ученика:

  • Скопировать пример и запустить его.
  • Изменить параметры: длину стороны, цвет, скорость.
  • Попробовать написать функцию draw_regular_polygon() самостоятельно.

Шпаргалка команд (коротко)

  • forward(n), backward(n)
  • left(angle), right(angle)
  • penup(), pendown(), goto(x, y)
  • circle(radius[, extent])
  • begin_fill(), end_fill(), fillcolor()
  • speed(n), pensize(n), pencolor()

Советы по эстетике рисунка

  • Используйте разную pensize() для визуальной иерархии.
  • Используйте begin_fill()/end_fill() для выделения областей.
  • Смешивайте цвета и формы для наглядных упражнений по композиции.

Совместимость и миграция

  • Модуль turtle доступен во всех распространённых дистрибутивах Python 3.
  • При переходе с Python 2 обратите внимание на синтаксис print и изменения в стандартной библиотеке — лучше использовать Python 3.

Заключение

Модуль turtle — простой, наглядный инструмент для изучения программирования и основ графики. Начните с базовых команд, затем автоматизируйте через функции и циклы. Когда потребности вырастут — рассмотрите специализированные библиотеки для графики и анимации.

Важно: этот подход помогает понять геометрию и управление потоком; для сложных проектов выбирайте более производительные инструменты.

Краткое резюме

  • Turtle даёт быстрый визуальный отклик на команды и идеально подходит для обучения.
  • Используйте циклы для повторяющихся фигур и функции для переиспользуемости.
  • Для интерактивных игр или сложной анимации применяйте другие библиотеки.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как устроить идеальную вечеринку для просмотра ТВ
Развлечения

Как устроить идеальную вечеринку для просмотра ТВ

Как распаковать несколько RAR‑файлов сразу
Инструменты

Как распаковать несколько RAR‑файлов сразу

Приватный просмотр в Linux: как и зачем
Приватность

Приватный просмотр в Linux: как и зачем

Windows 11 не видит iPod — способы исправить
Руководство

Windows 11 не видит iPod — способы исправить

PS5: как настроить игровые пресеты
Консоли

PS5: как настроить игровые пресеты

Как переключить камеру в Omegle на iPhone и Android
Руководство

Как переключить камеру в Omegle на iPhone и Android