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

Рисование фигур в 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
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро