Библиотека turtle
– это расширения языка Питон, позволяющее рисовать на экране несложные рисунки. Представьте себе, что по экрану компьютера ползает маленькая черепашка (turtle)
. Вы можете управлять движением черепашки, отдавая ей различные команды вида "Проползти вперед на 10 пикселей", "Повернуть направо", "Повернуть налево". После того, как вы отдадите ей команду "Начать рисовать", черепашка будет оставлять за собой след, пока не получит команду "Кончить рисовать". Управлять черепашкой можно при помощи инструкций Питона. Вот как, например, выглядит программа, рисующая квадрат:
import turtle # Подключаем модуль turtle turtle.reset() # Очищаем экран, приводим черепашку в начальное положение turtle.pendown() # Опускаем перо перо (начало рисования) turtle.forward(50) # Проползти 50 пикселей вперед turtle.left(90) # Поворот влево на 90 градусов turtle.forward(50) # Рисуем вторую сторону квадрата turtle.left(90) turtle.forward(50) # Рисуем третью сторону квадрата turtle.left(90) turtle.forward(50) # Рисуем четвертую сторону квадрата turtle.penup() # Поднять перо (закончить рисовать) turtle.forward(100) # Отвести черепашку от рисунка в сторону turtle.mainloop() # Задержать окно на экране
Документация
Находится на странице //docs.python.org/3/library/turtle.html.Основные команды для управления черепашкой
Ползаем
forward(distance)
- Проползти вперёд на distance пикселей;
backward(distance)
- Проползти назад на distance пикселей;
right(angle)
- Повернуться налево на angle градусов;
left(angle)
- Повернуться направо на angle градусов;
goto(x, y)
- Переместить черепашку в точку с координатами (x,y);
setx(x)
- Установить x координату черепашки;
sety(y)
- Установить y координату черепашки;
setheading(to_angle)
- Повернуть черепашку под углом to_angle к вертикали (0 — наверх, 90 — направо);
home()
- Вернуть черепашку домой — в точку, с координатами (0,0);
circle(radius)
- Нарисовать окружность радиуса |r|, центр которой находится слева от черепашки, если r>0 и справа, если r<1;
dot(size, color)
- Нарисовать точку диаметра size цвета color. Параметр color необязателен;
undo()
- Откатить предыдущее действие черепашки;
speed(speed)
- Установить скорость черепашки. speed должно быть от 1 (медленно) до 10 (быстро), или 0 (мгновенно);
Рисуем
pendown()
- Начать рисовать;
penup()
- Закончить рисовать;
pensize(width)
- Установить диаметр пера в width;
pencolor(colorstring)
- Установить цвет линии, которая рисует черепашка (например,
'brown'
или'#32c18f'
); fillcolor(colorstring)
- Установить цвет заполнения;
begin_fill()
- Начать следить за черепашкой для заполнения области;
end_fill()
- Заполнить цветом
fillcolor
область, пройденную черепашкой начиная сbegin_fill()
; showturtle()
- Показать черепашку;
hideturtle()
- Спрятать черепашку;
write(text)
- Вывести текст
text
;
Узнать про черепашку
position()
- Получить текущие координаты черепашки;
towards(x, y)
- Получить угол между текущим направление черепашки и прямой от черепашки к точке (x,y);
xcor()
- Получить x координату черепашки;
ycor()
- Получить y координату черепашки;
heading()
- Получить текущий угол к вертикали;
distance(x, y)
- Получить расстояние до точки (x,y);
isdown()
- Узнать, рисует ли сейчас черепашка;
isvisible()
- Узнать, видима ли сейчас черепашка;
Интерактив
onkey(function, key)
- Выполнить функцию
function
(принимающей два аргумента, x и y — координаты черепашки) после нажатия кнопкиkey
(например, 'a', 'Up', 'space'); listen()
- Начать следить на нажатиями клавиш и кликами мыши;
ontimer(function, time)
- Выполнить функцию
function
черезtime
миллисекунд; textinput(title, prompt)
- Вывести окно с заголовком
title
и текстомprompt
, вернуть введённое значение;
Ещё нетривиальные примеры
Рисуем простую фигуру Знак радиоактивности Оптическая иллюзия Гравитация — комета-черепашка вокруг солнца Управляем космическим кораблём Пример от разработчкиков turtleЗадачи
01: Нарисуйте спирали
Фракталы
Обычно фракталы рисуются при помощи рекурсивных алгоритмов. Как правило, у алгоритма два аргумента — размер объекта и глубина построения.02: Кривая Коха
Нарисуйте кривую Коха.
03: Снежинка Коха
Нарисуйте снежинку Коха.
04: Треугольник Серпинского
Нарисуйте треугольник Серпинского.
05: Кривая Минковского
Нарисуйте Кривую Минковского.
06: Ледяной треугольный фрактал
Нарисуйте ледяной треугольный фрактал.
07: Кривая Дракона
Нарисуйте кривую дракона.