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

Смена/получение цвета пера и цвета заливки фигур

В материале представлены команды, отвечающие за смену цвета пера/карандаша и цвета заливки фигур при рисовании по холсту в модуле turtle.

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

>>> import turtle
# функция модуля
>>> turtle.pencolor()
# создание экземпляра пера
>>> pen = turtle.Turtle()
>>> pen.pencolor()

Содержание:


turtle.pencolor(*args):

Метод turtle.pencolor() возвращает или устанавливает цвет пера.

Допускаются четыре формата ввода цвета:

  • turtle.pencolor(): возвращает текущий цвет пера как строку спецификации цвета или как кортеж (см. пример). Может использоваться как ввод для другого вызова turtle.color()/turtle.pencolor()/turtle.fillcolor().
  • turtle.pencolor(colorstring): устанавливает значение colorstring, которое представляет собой строку спецификации цвета Tk, например 'red', 'yellow', или '#33cc8c'.
  • turtle.pencolor((r, g, b)): устанавливает цвет RGB, представленный кортежем r, g и b. Каждый из r, g и b должен находиться в диапазоне 0..colormode, где turtle.colormode() равен 1.0 или 255.
  • turtle.pencolor(r, g, b): устанавливает цвет RGB, представленный кортежем r, g и b. Каждый из r, g и b должен находиться в диапазоне 0..colormode.

Если форма пера является многоугольником (turtle.circle()), то контур этого многоугольника рисуется с новым заданным цветом пера.

>>> colormode()
# 1.0
>>> turtle.pencolor()
# 'red'
>>> turtle.pencolor("brown")
>>> turtle.pencolor()
# 'brown'
>>> tup = (0.2, 0.8, 0.55)
>>> turtle.pencolor(tup)
>>> turtle.pencolor()
# (0.2, 0.8, 0.5490196078431373)
>>> colormode(255)
>>> turtle.pencolor()
# (51.0, 204.0, 140.0)
>>> turtle.pencolor('#32c18f')
>>> turtle.pencolor()
# (50.0, 193.0, 143.0)

turtle.fillcolor(*args):

Метод turtle.fillcolor() возвращает или устанавливает цвет заливки.

Допускаются четыре формата ввода цвета:

  • turtle.fillcolor(): возвращает текущий цвет пера как строку спецификации цвета или как кортеж (см. пример). Может использоваться как ввод для другого вызова turtle.color()/turtle.pencolor()/turtle.fillcolor().
  • turtle.fillcolor(colorstring): устанавливает значение colorstring, которое представляет собой строку спецификации цвета Tk, например 'red', 'yellow', или '#33cc8c'.
  • turtle.fillcolor((r, g, b)): устанавливает цвет RGB, представленный кортежем r, g и b. Каждый из r, g и b должен находиться в диапазоне 0..colormode, где turtle.colormode() равен 1.0 или 255.
  • turtle.fillcolor(r, g, b): устанавливает цвет RGB, представленный кортежем r, g и b. Каждый из r, g и b должен находиться в диапазоне 0..colormode.

Если форма пера является многоугольником (turtle.circle()), то контур этого многоугольника рисуется с новым заданным цветом заливки..

>>> turtle.fillcolor("violet")
>>> turtle.fillcolor()
# 'violet'
>>> turtle.pencolor()
# (50.0, 193.0, 143.0)

# целые числа, а не числа с плавающей запятой
>>> turtle.fillcolor((50, 193, 143))
>>> turtle.fillcolor()
# (50.0, 193.0, 143.0)
>>> turtle.fillcolor('#ffffff')
>>> turtle.fillcolor()
# (255.0, 255.0, 255.0)

turtle.color(*args):

Метод turtle.color() возвращает или устанавливает цвет пера и цвет заливки.

Допускается несколько форматов ввода. Они используют от 0 до 3 аргументов следующим образом:

  • turtle.color(): возвращает текущий цвет карандаша и текущий цвет заливки в виде пары строк спецификации цвета или кортежей, возвращаемых turtle.pencolor() и turtle.fillcolor().

  • color(colorstring), color((r,g,b)), color(r,g,b): входные данные такие же, как в turtle.pencolor(), устанавливают и цвет заливки, и цвет пера на заданное значение.

  • color(colorstring1, colorstring2) или color((r1,g1,b1), (r2,g2,b2)): эквивалентно turtle.pencolor(colorstring1) и turtle.fillcolor(colorstring2) и аналогично, если используется другой формат ввода.

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

>>> turtle.color("red", "green")
>>> turtle.color()
# ('red', 'green')
>>> turtle.color("#285078", "#a0c8f0")
>>> turtle.color()
# ((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))

Смотрите так же описание метода turtle.colormode().

Заливка фигур цветом.

turtle.filling():

Метод turtle.filling() проверяет статус заливки фигуры цветом (True, если включено, False в противном случае).

>>> turtle.begin_fill()
>>> if turtle.filling():
...    turtle.pensize(5)
... else:
...    turtle.pensize(3)

turtle.begin_fill():

Метод turtle.begin_fill() вызывается непосредственно перед рисованием фигуры для ее заливки.

turtle.end_fill():

Метод turtle.end_fill() заполняет фигуру цветом, нарисованную после последнего вызова turtle.begin_fill().

Заполнены ли области перекрытия для самопересекающихся многоугольников или нескольких фигур, зависит от графики операционной системы, типа перекрытия и количества перекрытий. Например, звезда "Turtle" в разделе "Пример..." может быть либо полностью желтой, либо иметь несколько белых областей.

>>> turtle.color("black", "red")
>>> turtle.begin_fill()
>>> turtle.circle(80)
>>> turtle.end_fill()