В материале представлены команды, отвечающие за специальные методы пера, которые могут записывать определенные действия в модуле 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.end_poly()
заканчивает записывать вершины многоугольника,turtle.get_poly()
возвращает последний записанный многоугольник,turtle.clone()
создает и возвращает клон пера,turtle.getturtle()
возвращает объект turtle.Screen
,turtle.getpen()
возвращает объект turtle.Screen
,turtle.getscreen()
возвращает объект turtle.Screen
,turtle.setundobuffer()
включает или отключает отменяющий буфер,turtle.undobufferentries()
количество записей в отменяющем буфере,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
только при использовании составных фигур, как показано выше!