Turtle Python: рисуем разнообразные фигуры

Раздел: Библиотеки -> Turtle графика

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

Библиотека turtle предоставляет простой способ создания графических изображений. С её помощью можно рисовать различные геометрические фигуры, управляя перемещением черепашки по холсту.

Как нарисовать квадрат с помощью turtle?

Базовое решение для квадрата повторяет четыре раза движение вперёд и поворот на 90 градусов.

import turtle
t = turtle.Turtle()
for _ in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

Python turtle screen (работа с экраном в модуле turtle python)

Черепашка проходит 100 единиц, поворачивает направо, и так четыре раза. Результат - замкнутый квадрат.

Типичная ошибка:

Если забыть вызвать turtle.done(), окно может закрыться сразу после выполнения кода. Нужно добавлять эту команду в конце программы.

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

Для равностороннего треугольника угол поворота равен 120 градусов (360/3).

import turtle
t = turtle.Turtle()
for _ in range(3):
    t.forward(120)
    t.left(120)
turtle.done()

Python turtle codes (коды для turtle в python)

Возможная проблема:

Если направление поворота не совпадает с ожидаемым, треугольник может получиться перевёрнутым. Рекомендуется использовать left() или right() в зависимости от начального положения черепашки.

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

Круг в turtle рисуется методом circle() с указанием радиуса.

import turtle
t = turtle.Turtle()
t.circle(50)
turtle.done()

Turtle python goto (команда goto в модуле turtle python)

По умолчанию круг рисуется против часовой стрелки. Для закрашенного круга используется begin_fill() и end_fill().

Типичная ошибка:

Если радиус отрицательный, круг рисуется в другую сторону. Нужно учитывать направление.

Как нарисовать звезду?

Пятиконечная звезда получается чередованием поворотов на 144 градуса (180-36).

import turtle
t = turtle.Turtle()
for _ in range(5):
    t.forward(100)
    t.right(144)
turtle.done()

графика turtle python (рисование с помощью модуля turtle в python)

Проблема:

Если угол поворота не кратен 36, звезда может не замкнуться. Нужно проверить расчёт угла.

Как нарисовать спираль?

Спираль можно создать, увеличивая длину шага с каждым поворотом.

import turtle
t = turtle.Turtle()
for i in range(100):
    t.forward(i * 2)
    t.right(20)
turtle.done()

Python turtle точки (рисование точек с помощью turtle в python)

Длина шага растёт, а поворот остаётся постоянным - получается архимедова спираль.

Возможная ошибка:

Слишком большой угол поворота приведёт к закручиванию в одну точку. Лучше брать угол меньше 30 градусов.

Как нарисовать случайные фигуры?

Можно комбинировать случайные длины и углы с помощью модуля random.

import turtle, random
t = turtle.Turtle()
for _ in range(50):
    t.forward(random.randint(10, 50))
    t.right(random.randint(0, 360))
turtle.done()

Проблема:

Фигура может выйти за границы окна. Рекомендуется проверять координаты или ограничивать холст.

- Turtle library python (основы работы с turtle)

Расширенные примеры рисования фигур turtle

Как нарисовать фрактальное дерево?

Рекурсивный алгоритм позволяет создавать ветвящиеся структуры.

Пример
import turtle
def tree(branch_len, t):
    if branch_len > 5:
        t.forward(branch_len)
        t.right(20)
        tree(branch_len - 15, t)
        t.left(40)
        tree(branch_len - 15, t)
        t.right(20)
        t.backward(branch_len)

t = turtle.Turtle()
t.left(90)
t.up()
t.backward(100)
t.down()
t.color("green")
tree(75, t)
turtle.done()

Результат - дерево с ветвями, длина которых уменьшается с каждым уровнем рекурсии.

Графическое окно с фрактальным деревом.

Как нарисовать снежинку Коха?

Снежинка строится путём замены каждого отрезка ломаной линией.

Пример
import turtle
def koch_curve(t, length, depth):
    if depth == 0:
        t.forward(length)
    else:
        length /= 3
        koch_curve(t, length, depth-1)
        t.left(60)
        koch_curve(t, length, depth-1)
        t.right(120)
        koch_curve(t, length, depth-1)
        t.left(60)
        koch_curve(t, length, depth-1)

t = turtle.Turtle()
t.speed(0)
t.up()
t.goto(-200, 100)
t.down()
for _ in range(3):
    koch_curve(t, 400, 3)
    t.right(120)
turtle.done()

Три стороны снежинки рисуются с глубиной рекурсии 3.

Снежинка Коха с фрактальной структурой.

Как нарисовать закрашенные фигуры с градиентом?

Меняя цвет заливки по шагам, можно получить эффект градиента.

Пример
import turtle
t = turtle.Turtle()
t.speed("fastest")
turtle.colormode(255)
for i in range(36):
    t.color(0, 0, i * 7)
    t.begin_fill()
    for _ in range(4):
        t.forward(100)
        t.right(90)
    t.end_fill()
    t.right(10)
turtle.done()

Каждый квадрат повёрнут на 10 градусов и имеет меняющийся оттенок синего.

Серия закрашенных квадратов с градиентом от чёрного до синего.

Как нарисовать анимированную фигуру?

Метод ontimer позволяет создавать анимацию без остановки окна.

Пример
import turtle
t = turtle.Turtle()
t.speed(0)
def animate():
    t.clear()
    t.circle(50)
    t.right(5)
    turtle.ontimer(animate, 50)
animate()
turtle.done()

Круг будет вращаться вокруг своего центра с обновлением каждые 50 миллисекунд.

Окно с вращающимся кругом.

Как нарисовать многоугольник с произвольным числом сторон?

Обобщённая функция принимает количество сторон и длину стороны.

Пример
import turtle
def polygon(t, sides, length):
    angle = 360 / sides
    for _ in range(sides):
        t.forward(length)
        t.right(angle)

t = turtle.Turtle()
polygon(t, 8, 70)  # Восьмиугольник
turtle.done()

Можно строить любой правильный многоугольник, меняя параметр sides.

Правильный восьмиугольник.

Какие фигуры можно нарисовать с помощью turtle в Python - comments

En
Python turtle фигуры (python)