Черепашка (модуль turtle)

Библиотека turtle — это модуль для языка Питон, позволяющей рисовать на экране рисунки. Представьте себе, что по экрану компьютера ползает маленькая черепашка (turtle). Вы можете управлять движением черепашки, отдавая ей различные команды вида “Проползти вперед на 10 пикселей”, “Поверни направо на 10 градусов”. После того, как вы отдадите ей команду “Начать рисовать”, черепашка будет оставлять за собой след, пока не получит команду “Закончить рисовать”. Управлять черепашкой можно при помощи инструкций Питона. Вот так, например, выглядит программа, рисующая ломаную линию из 16 звеньев:

import turtle           # Подключаем модуль turtle
turtle.down()           # Опускаем перо (начало рисования)
turtle.left(60)         # Меняем направление движения черепашки
for i in range(8):      # Повторяем 8 раз рисование двух отрезков
    turtle.forward(50)  # Рисуем один отрезок
    turtle.right(120)   # Поворачиваем вправо на 120 градусов
    turtle.forward(50)  # Рисуем второй отрезок
    turtle.left(120)    # Поворачиваем влево на 120 градусов
turtle.up()             # Поднимаем перо (закончить рисовать)
turtle.forward(100)     # Отводим черепашку от рисунка в сторону
turtle.hideturtle()     # Спрятать черепашку
turtle.mainloop()       # Задержать окно на экране

Документация

Находится на странице https://docs.python.org/3/library/turtle.html.

Основные команды для управления черепашкой

Самое основное

turtle.forward(distance)
Проползти вперёд на distance пикселей.;
turtle.right(angle)
Повернуться направо на angle градусов;
turtle.left(angle)
Повернуться налево на angle градусов;
turtle.down()
Начать рисовать;
turtle.up()
Закончить рисовать;
turtle.goto(x, y)
Переместить черепашку в точку с координатами (x,y);

Ползаем

turtle.backward(distance)
Проползти назад на distance пикселей;
turtle.setx(x)
Установить x координату черепашки;
turtle.sety(y)
Установить y координату черепашки;
turtle.setheading(to_angle)
Повернуть черепашку под углом to_angle к вертикали (0 — наверх, 90 — направо);
turtle.home()
Вернуть черепашку домой — в точку, с координатами (0,0);
turtle.circle(radius)
Нарисовать окружность радиуса |r|, центр которой находится слева от черепашки, если r>0 и справа, если r<1;
turtle.dot(size, color)
Нарисовать точку диаметра size цвета color. Параметр color необязателен;
turtle.undo()
Откатить предыдущее действие черепашки;

Рисуем

turtle.pensize(width)
Установить диаметр пера в width;
turtle.pencolor(colorstring)
Установить цвет линии, которая рисует черепашка (например, 'brown' или '#32c18f');
turtle.fillcolor(colorstring)
Установить цвет заполнения;
turtle.begin_fill()
Начать следить за черепашкой для заполнения области;
turtle.end_fill()
Заполнить цветом fillcolor область, пройденную черепашкой начиная с begin_fill();
turtle.showturtle()
Показать черепашку;
turtle.hideturtle()
Спрятать черепашку;
turtle.write(text)
Вывести текст text;

Ускоряем рисование

turtle.speed(speed)
Установить скорость черепашки. speed должно быть от 1 (медленно) до 10 (быстро), или 0 (мгновенно);
turtle.getscreen().tracer(n)
Отрисовывать лишь каждый n-й кадр. Почти в n раз ускоряет отрисовку.

Узнать про черепашку

turtle.position()
Получить текущие координаты черепашки;
turtle.towards(x, y)
Получить угол между текущим направление черепашки и прямой от черепашки к точке (x,y);
turtle.xcor()
Получить x координату черепашки;
turtle.ycor()
Получить y координату черепашки;
turtle.heading()
Получить текущий угол к вертикали;
turtle.distance(x, y)
Получить расстояние до точки (x,y);
turtle.isdown()
Узнать, рисует ли сейчас черепашка;
turtle.isvisible()
Узнать, видима ли сейчас черепашка;

Интерактив

turtle.onkey(function, key)
Выполнить функцию function (принимающей два аргумента, x и y — координаты черепашки) после нажатия кнопки key (например, 'a', 'Up', 'space');
turtle.listen()
Начать следить на нажатиями клавиш и кликами мыши;
turtle.ontimer(function, time)
Выполнить функцию function через time миллисекунд;
turtle.textinput(title, prompt)
Вывести окно с заголовком title и текстом prompt, вернуть введённое значение;

Контроль над окном

turtle.setworldcoordinates(llx, lly, urx, ury)
Сделать окно от (llx, lly) до (urx, ury);
turtle.getscreen().window_width()
Ширина окна
turtle.getscreen().window_height()
Высота окна
turtle.turtles()
Список всех черепашек