В материале представлены команды, отвечающие за толщину линии пера, внешний вид, а так же другие его атрибуты в модуле turtle
.
Примечание: можно использовать как функции модуля, так и одноименные методы экземпляра пера/холста. например:
>>> import turtle # функция модуля >>> turtle.pensize() # создание экземпляра пера >>> pen = turtle.Turtle() >>> pen.pensize()
turtle.pensize()
устанавливает толщину линии пера,turtle.width()
устанавливает толщину линии пера,turtle.pen()
возвращает или устанавливает атрибуты пера.turtle.shape()
устанавливает форму пера,turtle.resizemode()
устанавливает режим изменения размера черепахи,turtle.shapesize()
возвращает/устанавливает растяжение пера,turtle.turtlesize()
возвращает/устанавливает растяжение пера,turtle.shearfactor()
возвращает/устанавливает коэффициент сдвига пера,turtle.tilt()
поворачивает форму пера на угол,turtle.tiltangle()
возвращает/устанавливает текущий угол наклона,turtle.shapetransform()
возвращает/устанавливает текущую матрицу преобразования,turtle.get_shapepoly()
возвращает текущий многоугольник формы пера.turtle.pensize(width=None)
,turtle.width(width=None)
:Методы turtle.pensize()
и turtle.width()
устанавливает толщину линии пера/карандаша равной width
, или возвращает ее.
Если для turtle.resizemode()
установлено значение 'auto
', а форма пера является многоугольником, то этот многоугольник будет изображен с одинаковой толщиной линии.
Аргумент width
- положительное целое число int
. Если аргумент width
не указан, то возвращается текущий размер пера черепахи.
# смотрим толщину пера >>> turtle.pensize() # 1 # дальше рисуем линии шириной 10 пикселей >>> turtle.pensize(10)
turtle.pen(pen=None, **pendict)
:Метод turtle.pen()
возвращает или устанавливает атрибуты пера в "словарь пера" со следующими парами key/
:
'shown'
: True
/False
'pendown'
: True
/False
'pencolor'
: строка с цветом или цветовой кортеж'fillcolor'
: строка с цветом или цветовой кортеж'pensize'
: положительное число'speed'
: число в диапазоне 0..10'resizemode'
: 'auto'
или 'user'
или 'noresize'
'stretchfactor'
: (positive number, positive number)
'outline'
: положительное число'tilt'
: числоЭтот словарь можно использовать в качестве аргумента для последующего вызова функции turtle.pen()
для восстановления прежнего состояния пера. Более того, один или несколько из этих атрибутов могут быть предоставлены как ключевые аргументы. Это можно использовать для установки нескольких атрибутов пера в одном операторе.
Аргументы:
pen
- словарь с некоторыми или всеми перечисленными выше ключами,pendict
- один или несколько ключевых аргументов с перечисленными выше ключами в качестве ключевых слов.>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10) >>> sorted(turtle.pen().items()) # [('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'), # ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'), # ('shearfactor', 0.0), ('shown', True), ('speed', 9), # ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)] >>> penstate=turtle.pen() >>> turtle.color("yellow", "") >>> turtle.penup() >>> sorted(turtle.pen().items())[:3] # [('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')] >>> turtle.pen(penstate, fillcolor="green") >>> sorted(turtle.pen().items())[:3] # [('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]
turtle.shape(name=None)
:Метод turtle.shape()
устанавливает форму пера, в соответствии с настройками, соответствующих заданному именем name
или, если имя не указано, возвращает имя текущей формы.
Фигура с именем name
должна существовать в словаре фигур TurtleScreen
. Изначально существуют многоугольники следующих форм: 'arrow'
, 'turtle'
, 'circle'
, 'square'
, 'triangle'
, 'classic'
. Чтобы узнать, как работать с фигурами, смотрите функцию turtle.register_shape()
.
Аргумент name
- строка, которая является допустимым именем формы.
>>> turtle.shape() # 'classic' >>> turtle.shape("turtle") >>> turtle.shape() # 'turtle'
turtle.resizemode(rmode=None)
:Метод turtle.resizemode()
устанавливает для режима rmode
одно из значений: 'auto'
, 'user'
, 'noresize'
.
Если rmode
не указан, то возвращает текущий режим. Различные режимы изменения размера имеют следующие эффекты:
'auto'
: адаптирует внешний вид черепахи в соответствии со значением размера пера.'user'
: адаптирует внешний вид черепахи в соответствии со значениями stretchfactor
и outlinewidth
(контура), которые задаются с помощью turtle.shapeize()
.'noresize'
: никакой адаптации внешнего вида черепахи не происходит.Если вызвать функцию turtle.shapesize()
с аргументами, то произойдет автоматический вызов turtle.resizemode('user')
.
>>> turtle.resizemode() # 'noresize' >>> turtle.resizemode("auto") >>> turtle.resizemode() # 'auto'
turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)
,turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)
:Методы turtle.turtlesize()
и turtle.shapesize()
возвращает или устанавливает растяжение пера x
/y
и/или контур outline
.
Эта функция устанавливает turtle.resizemode('user')
. Если и только если для turtle.resizemode()
установлено значение 'user'
, перо будет отображаться растянутой в соответствии с ее факторами растяжения:
stretch_wid
- это фактор растяжения, перпендикулярный ее ориентации (int
), stretch_len
- фактор растяжения в направлении ее ориентации (int
), outline
определяет ширину контура фигур (int
).>>> turtle.shapesize() # (1.0, 1.0, 1) >>> turtle.resizemode("user") >>> turtle.shapesize(5, 5, 12) >>> turtle.shapesize() # (5, 5, 12) >>> turtle.shapesize(outline=8) >>> turtle.shapesize() # (5, 5, 8)
turtle.shearfactor(shear=None)
:Метод turtle.shearfactor()
возвращает или устанавливает коэффициент сдвига пера.
Изменяет форму пера в соответствии с заданным фактором сдвига shear
, который является тангенсом угла shear
. Не меняет направление движения пера.
Если сдвиг shear
не задан, то возвращает текущий коэффициент сдвига, т.е. тангенс угла сдвига shear
, по которому срезаются линии, параллельные направлению движения черепахи.
>>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.shearfactor(0.5) >>> turtle.shearfactor() # 0.5
turtle.tilt(angle)
:Метод turtle.tilt()
поворачивает форму пера на угол angle
относительно текущего угла наклона. Не меняет направление движения пера черепахи.
>>> turtle.reset() >>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.tilt(30) >>> turtle.fd(50) >>> turtle.tilt(30) >>> turtle.fd(50)
turtle.tiltangle(angle=None)
:Метод turtle.tiltangle()
возвращает или устанавливает текущий угол наклона angle
.
Если задан угол angle
, поворачивает фигуру пера так, чтобы она указывала в направлении, заданном углом, независимо от текущего угла наклона. Не меняет направление движения пера черепахи.
Если angle=None
, то возвращает текущий угол наклона, т.е. угол между ориентацией формы пера и направление ее движения.
>>> turtle.reset() >>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.tilt(45) >>> turtle.tiltangle() # 45.0
turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)
:Метод turtle.shapetransform()
возвращает или устанавливает текущую матрицу преобразования формы пера.
Если ни один из элементов матрицы не задан, то возвращает матрицу преобразования как кортеж из 4 элементов. В противном случае устанавливает заданные элементы и преобразует форму черепахи в соответствии с матрицей, состоящей из первой строки t11
, t12
и второй строки t21
, t22
.
Определитель t11 * t22 - t12 * t21
не должен быть нулевым, иначе возникает ошибка. Изменяет коэффициент растяжения, коэффициент сдвига и угол наклона в соответствии с заданной матрицей.
>>> turtle = Turtle() >>> turtle.shape("square") >>> turtle.shapesize(4,2) >>> turtle.shearfactor(-0.5) >>> turtle.shapetransform() # (4.0, -1.0, -0.0, 2.0)
turtle.get_shapepoly()
:Метод turtle.get_shapepoly()
возвращает текущий многоугольник формы пера как кортеж пар координат. Это можно использовать для определения новой формы или компонентов составной формы.
>>> turtle.shape("square") >>> turtle.shapetransform(4, -1, 0, 2) >>> turtle.get_shapepoly() # ((50, -20), (30, 20), (-50, 20), (-30, -20))