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

Настройки и специальные методы холста модуля turtle в Python

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

Содержание:


turtle.mode(mode=None):

Метод turtle.mode() устанавливает режим mode пера в одно из строковых значений 'standard', 'logo' или 'world' и выполняет сброс. Если режим mode не указан, то возвращает текущий режим.

  • Режим 'standard' совместим со старыми версиями модуля turtle.
  • Режим 'logo' совместим с большинством изображений логотипа черепахи.
  • В режиме 'world' используются определенные пользователем координаты. Внимание: в этом режиме углы искажаются, если отношение x/y не равно 1.

Отличие режима 'standard' от 'logo'.

РежимНачальный курс черепахиПоложительные углы
'standard“направо (восток)против часовой стрелки
'logo“вверх (север)по часовой стрелке

Пример:

>>> import turtle
>>> scr = turtle.Screen()
# сбрасывает направление пера
>>> scr.mode("logo")
>>> scr.mode()
# 'logo'

turtle.colormode(cmode=None):

Метод turtle.colormode() возвращает текущий цветовой режим или устанавливает его на 1.0 или 255.

Впоследствии значения r, g, b цветовых троек должны быть в диапазоне 0..cmode.

>>> import turtle
>>> scr = turtle.Screen()
>>> pen = turtle.Turtle()
>>> scr.colormode(1)
>>> pen.pencolor(240, 160, 80)
# Traceback (most recent call last):
#      ...
# TurtleGraphicsError: bad color sequence: (240, 160, 80)
>>> scr.colormode()
# 1.0
>>> scr.colormode(255)
>>> scr.colormode()
# 255
>>> pen.pencolor(240,160,80)

turtle.getshapes():

Метод turtle.getshapes() возвращает список имен всех доступных на данный момент форм пера.

>>> import turtle
>>> scr = turtle.Screen()
>>> scr.getshapes()
# ['arrow', 'blank', 'circle', ..., 'turtle']

turtle.register_shape(name, shape=None),
turtle.addshape(name, shape=None):

Метод turtle.addshape() и turtle.register_shape(), добавляет фигуру пера в список фигур TurtleScreen.

Его можно вызвать тремя разными способами:

  • name является именем gif-файла, а аргумент shape отсутствует:

    Установит соответствующую форму изображения.

    >>> import turtle
    >>> scr = turtle.Screen()
    >>> scr.register_shape("turtle.gif")
    

    Примечание. Фигуры изображений не вращаются при повороте черепахи, поэтому они не отображают курс черепахи!

  • name - произвольная строка, а shape - набор пар координат:

    Установит соответствующую форму многоугольника.

    >>> import turtle
    >>> scr = turtle.Screen()
    >>> scr.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))
    
  • name - произвольная строка, а shape - составной объект Shape:

    Установит соответствующую составную фигуру.

    Добавит фигуру пера в список фигур TurtleScreen. Только зарегистрированные таким образом формы можно использовать с помощью команды turtle.shape(shapename).

turtle.turtles():

Метод turtle.turtles() возвращает список черепах на холсте экрана.

>>> import turtle
>>> scr = turtle.Screen()
>>> for turtle in scr.turtles():
...     turtle.color("red")

turtle.window_height():

Метод turtle.window_height() возвращает текущую высоту окна модуля turtle.

>>> import turtle
>>> scr = turtle.Screen()
>>> scr.window_height()
# 810

turtle.window_width():

Метод turtle.window_width() возвращает текущую ширину окна модуля turtle.

>>> import turtle
>>> scr = turtle.Screen()
>>> scr.window_width()
# 960

turtle.bye():

Метод turtle.bye() закрывает активное окно модуля turtle.

turtle.exitonclick():

Метод turtle.exitonclick() привязывает метод turtle.bye() к щелчку мыши по холсту.

Другими словами, при выполнении скрипта turtle, ждет клика мышки по холсту, что бы его закрыть. Обычно, при окончании выполнения скрипта со сценарием turtle холст сразу закрывается.

Поместите код, представленный ниже, в файл test.py и попробуйте запустить сценарий. Затем уберите комментарий у 2-х последних строк turtle.exitonclick() и снова запустите сценарий.

# поместите код в test.py
import turtle

def square(pen_obj, color, side_size):
    pen_obj.fillcolor(color)
    pen_obj.begin_fill()
    for _ in range(4):
        pen_obj.fd(side_size)
        pen_obj.right(90)
    pen_obj.end_fill()
    
pen = turtle.Turtle()
square(pen, 'green', 100)

# закрывает холст при клике мышкой
# scr = turtle.Screen()
# scr.exitonclick()

turtle.setup(width=_CFG['width'], height=_CFG['height'], startx=_CFG['leftright'], starty=_CFG['topbottom']):

Метод turtle.setup() устанавливает размер и положение главного окна модуля turtle. Значения аргументов по умолчанию хранятся в словаре конфигурации и могут быть изменены с помощью файла turtle.cfg.

  • width: если целое число, то размер в пикселях, если число с плавающей запятой, то часть экрана. По умолчанию 50% экрана.
  • height: если целое число, то высота в пикселях, если число с плавающей запятой, часть экрана. По умолчанию 75% экрана.
  • startx: если положительное число, то начальная позиция в пикселях от левого края экрана, если отрицательное - от правого края, если None, то окно будет центрировано по горизонтали.
  • starty: если положительное число, то начальная позиция в пикселях от верхнего края экрана, если отрицательное - от нижнего края, если None, то центрировано окно по вертикали.
>>> import turtle
>>> scr = turtle.Screen()
# устанавливает размер окна 200x200 пикселей 
# в верхнем левом углу экрана
>>> scr.setup (width=200, height=200, startx=0, starty=0)
# устанавливает окно на 75% экрана на 50% экрана и центрирует
>>> scr.setup(width=.75, height=0.5, startx=None, starty=None)

turtle.title(titlestring):

Метод turtle.title() устанавливает заголовок главного окна модуля turtle в строку, переданную как аргумент titlestring.

>>> import turtle
>>> scr = turtle.Screen()
>>> scr.title("Welcome to the turtle zoo!")

turtle.getcanvas():

Метод turtle.getcanvas() возвращает холст этого TurtleScreen. Полезно для инсайдеров, которые знают, что делать с холстом Tkinter.

>>> cv = turtle.getcanvas()
>>> cv
# <turtle.ScrolledCanvas object ...>