Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Путеводитель по Inkscape: Глава 39, инструмент Сплошная заливка

Алексей Дмитриев, 21 декабря 2011

Полное название инструмента: Заливать замкнутые области, значок в панели инструментов - . Курсор (указатель) инструмента выглядит так: . Работать инструментом не просто, а очень просто ≈ знай кликай на объектах, а они окрашиваются, независимо от наличия выделения.


Рис. 1

На рисунке 1: кликаем по очереди на каждом объекте ≈ все они окрашиваются в цвет инструмента. Никакого предпочтения выделенному зеленому кругу.

Механизм заливки проиллюстрирован рисунком 2:


Рис. 2

Инструмент создает поверх заливаемых объектов новые (независимые) объекты, у которых можно изменять атрибуты обычными средствами (можно добавить обводку, изменить заливку и так далее). Заливаемые объекты остаются неизменными.

Работает инструмент так: заливает несколько пикселей в месте клика, затем продолжает расширять залитую область до тех пор, пока не наткнется на уже окрашенные пиксели. Ему безразлично, относятся ли эти пиксели к заливке или обводке, и какому объекту они принадлежат.


Рис. 3

Важно лишь, чтобы окрашенные пиксели образовывали замкнутую область (рис 3).

Если замкнутой области не найдется, то в Секции сообщений в Строке состояния появится сообщение: Область не замкнута, заливка невозможна.

После этого залитая область обсчитывается и создается обычный векторный объект со всеми атрибутами. Поэтому заливать инструмент может не только цветом, но и обводкой и даже типом обводки (например, пунктиром). В общем: заливает стилем.

Заливать можно: либо стилем инструмента, либо предыдущим стилем. Это определяется в меню Файл ⇨ Настроить Inkscape ⇨ Инструменты ⇨ Сплошная заливка. Там же полезно поставить галочку в чекбоксе Показывать пометку выделения: чтобы было понятно, что свежезалитая область всегда автоматически выделена, стало быть, изменить ее цвет (стиль) легко при помощи Палитры.

Легче изменить стиль уже сделанной заливки, чем заранее установить стиль будущей заливки. Для последнего нужно:

  • В меню Файл ⇨ Настроить Inkscape ⇨ Инструменты ⇨ Сплошная заливка установить: Создавать новые объекты с: Последним использованным стилем.
  • Переключиться на инструмент Выделитель , чтобы убедиться в том, что на холсте нет выделенных объектов (либо пройти в меню Правка ⇨ Снять выделение).
    Чтобы снять все выделения можно просто нажать клавишу ESC, жаль что этого не написано в меню Правка ⇨ Снять выделение.
  • Выбрать стиль в Палитре.
  • Произвести заливку инструментом Сплошная заливка.

На Панели настройки инструмента (рисунок 4) многие опции нуждаются в пояснении.


Рис. 4

Начнем не с первой, а со второй настройки: Порог.

Всплывающая подсказка сообщает, что порог ≈ это "Максимально допустимая разница между щелкнутым пикселем и соседними пикселями, попадающими в заливку".

Как это понять? Выше говорилось, что инструмент "заливает несколько пикселей в месте клика, затем продолжает расширять залитую область до тех пор, пока не наткнется на уже окрашенные пиксели". Это верно только когда Порог равен нулю.

Если говорить точно, то инструмент расширяет заливаемую область до тех пор, пока встречает пиксели, удовлетворяющие определенным условиям. Одно из этих условий ≈ цвет пикселей. Если заливка идет цветом А, а заливаемая область окрашена цветом В, то Порог как раз определяет, насколько А должен отличаться от В, чтобы быть определен как отличающийся цвет.

Когда Порог нулевой, то любой цвет будет распознан. Когда порог 100, то практически ни один цвет не будет отличаться и заливки не произойдет.

Таким образом, границей заливки будет область пикселей, отличающихся от цвета заливки на величину Порога.

О механизме вычисления этого различия мы говорить не будем ≈ об этом знают только разработчики программы Inkscape.


Рис. 5

На рисунке 5 окружность, залитая градиентом от белого к черному. Порог везде равен 30. Показаны варианты заливки в зависимости от точки клика (то есть фактически от цвета заливаемой области).


Рис. 6

На рисунке 6 та же окружность при различных значениях Порога и при разных точках клика.

Но цвет ≈ не единственное возможное условие для вычисления заливаемой области. Заливка может производиться также по:

  • Тону
  • Насыщенности
  • Яркости
  • Непрозрачности

И тут мы вплотную подошли к первой настройке инструмента:

Название Чем залить: крайне неудачно и просто сбивает с толку. Нужно было бы сказать: По какому критерию вычислять область заливки.

Разберем эти критерии по порядку и все станет понятно.

  • Этот вариант мы уже разобрали. Все, что говорилось о вычислении области заливки выше, имело критерием именно видимые цвета.
  • Критерием вычисления области заливки будет наличие пикселей красного цвета (по системе RGB ≈ Красный/Зеленый/Синий). Зеленый и синий цвета будут игнорироваться.


    Рис. 7

    На рисунке 7 окружность залита сложным градиентом: от синего к зеленому, от зеленого к красному. Заливается серым цветом при Пороге, равном 50. Точка клика может быть от центра окружности до границы зеленого круга ≈ результат будет одинаков, так как синий и зеленый цвета игнорируются.

  • Критерием вычисления области заливки будет наличие пикселей зеленого цвета. Красный и синий цвета будут игнорироваться.


    Рис. 8

    На рисунке 8 та же окружность и тот же Порог. Точек клика две: в синей и красной области (в центре и на периферии окружности).

  • Критерием вычисления области заливки будет наличие пикселей синего цвета. Красный и зеленый цвета будут игнорироваться.


    Рис. 9

    На рисунке 9 та же окружность и тот же Порог.

  • Критерием вычисления области заливки будет разница Тона (по системе HSB ≈ Тон/Насыщенность/Яркость). Насыщенность и Яркость будут игнорироваться.


    Рис. 10

    На рисунке 10 окружность имеет градиент от одного значения Тона до другого. Заливается серым цветом с различными Порогами. Место клика одно и то же.

  • и Аналогично Тону (с соответствующими поправками). И иллюстрации были бы аналогичны, поэтому не стану повторяться.
  • При вычислении границы заливки принимается во внимание только разница непрозрачности. Все остальное игнорируется.


    Рис. 11

    На рисунке 11 окружность залита градиентом от черного непрозрачного до черного прозрачного (желтая полоса на заднем плане это демонстрирует). Заливали непрозрачным красным цветом. Показаны результаты при разных Порогах. Точка клика одинакова.

    Почему же залитой оказалось около половины окружности?
    - Потому что на пути заливки встретились желтые непрозрачные пиксели, а вычисление велось по критерию прозрачности, игнорируя все остальное.

Данная настройка инструмента позволяет увеличивать или уменьшать размеры заливки практически в неограниченных масштабах.

Небольшое увеличение размеров заливки нужно для исправления неточностей вычисления заливаемой области. Если объект имеет мелкие детали, то такая неточность возникает неизбежно (рисунок 12, фиолетовый контур).


Рис. 12

Сиреневый контур получен увеличением заливки на 0,3 пикселя, и этого хватило, чтобы все неточности "ушли" за обводку исходного объекта.

Труднее понять зачем может понадобиться увеличение заливки на тысячи и даже десятки тысяч пикселей. Даже при увеличении на 100 пикселей очертания фигуры искажаются до неузнаваемости, как на рисунке 13.


Рис. 13

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

  • Нет
  • Маленькие
  • Средние
  • Большие


Рис. 14

На рисунке 14: Верхний прямоугольник залился весь, так была выбрана опция Закрыть интервалы=Нет. Нижний прямоугольник залился только наполовину, так как была выбрана опция Закрыть интервалы=Маленькие

Веник позволяет вернуть все настройки к умолчанию.

Вот и все про сплошную заливку замкнутых контуров.
В следующей главе речь пойдет об инструменте Градиент.

Глава 38, инструмент Ластик Оглавление Глава 40, инструмент Градиент