Сообщить об ошибке.

Специальные методы пера модуля turtle в Python

В материале представлены команды, отвечающие за специальные методы пера, которые могут записывать определенные действия в модуле turtle.

Примечание: можно использовать как функции модуля, так и одноименные методы экземпляра пера/холста. Например:

>>> import turtle
# функция модуля
>>> p = turtle.getturtle()
>>> p
# <turtle.Turtle object at 0x...>

# создание экземпляра пера
>>> pen = turtle.Turtle()
>>> ts = pen.getscreen()
>>> ts
# <turtle._Screen object at 0x...>

Содержание:


turtle.begin_poly():

Метод turtle.begin_poly() начинает записывать вершины многоугольника. Текущее положение пера - это первая вершина многоугольника.

turtle.end_poly():

Метод turtle.end_poly() заканчивает запись вершин многоугольника. Текущая позиция черепахи - последняя вершина многоугольника.

Запись будет связана с первой вершиной.

turtle.get_poly():

Метод turtle.get_poly() возвращает последний записанный многоугольник.

>>> turtle.home()
>>> turtle.begin_poly()
>>> turtle.fd(100)
>>> turtle.left(20)
>>> turtle.fd(30)
>>> turtle.left(60)
>>> turtle.fd(50)
>>> turtle.end_poly()
>>> p = turtle.get_poly()
>>> register_shape("myFavouriteShape", p)

turtle.clone():

Метод turtle.clone() создает и возвращает клон пера с такими же свойствами положения, заголовка.

>>> mick = Turtle()
>>> joe = mick.clone()

turtle.getturtle(),
turtle.getpen():

Методы turtle.getturtle() и turtle.getpen() возвращает сам объект turtle.Turtle.

Единственное разумное использование: как функция для возврата анонимной пера:

>>> pet = getturtle()
>>> pet.fd(50)
>>> pet
# <turtle.Turtle object at 0x...>

turtle.getscreen():

Метод turtle.getscreen() возвращает объект turtle.Screen, на котором рисует перо. Затем для этого объекта можно вызвать методы TurtleScreen.

>>> ts = turtle.getscreen()
>>> ts
# <turtle._Screen object at 0x...>
>>> ts.bgcolor("pink")

turtle.setundobuffer(size):

Метод turtle.setundobuffer() включает или отключает отменяющий буфер для действий пера.

Если размер size является целым числом, то устанавливается пустой отменяющий буфер заданного размера.

Аргумент size дает максимальное количество действий модуля, которые могут быть отменены методом/функцией turtle.undo(). Если размер равен None, то отменяющий буфер отключен.

>>> turtle.setundobuffer(42)

turtle.undobufferentries():

Метод turtle.undobufferentries() возвращает количество записей в отменяющем буфере.

>>> while turtle.undobufferentries():
...     turtle.undo()

Составные формы пера.

Чтобы использовать составные формы ПЕРА, которые состоят из нескольких многоугольников разного цвета, необходимо явно использовать вспомогательный класс turtle.Shape, как описано ниже:

  • Создайте пустой объект turtle.Shape.
  • Добавьте к этому объекту столько компонентов, сколько необходимо, используя метод Shape.addcomponent().

Пример:

>>> import turtle
>>> s = turtle.Shape("compound")
>>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))
>>> s.addcomponent(poly1, "red", "blue")
>>> poly2 = ((0,0),(10,-5),(-10,-5))
>>> s.addcomponent(poly2, "blue", "red")

Теперь нужно добавить полученную фигуру в список фигур холста, потом можно ее использовать:

>>> turtle.register_shape("myshape", s)
>>> turtle.shape("myshape")

Примечание. Класс turtle.Shape() используется внутри метода turtle.register_shape() по-разному. Программист приложения должен иметь дело с классом Shape только при использовании составных фигур, как показано выше!