Объединение открытых объектов
Операцию объединения можно применить и к открытым (незамкнутым) объектам. Такие объекты создаются при помощи инструментов Line (Линия), Freehand (Рисование), Реn (Перо), Bezigon (Безигон), Knife (Нож), а также некоторых операций, например, Split и дополнений (Xtras) программы.
При объединении открытых объектов происходит соединение узлов составляющих и получается новый открытый объект. Если узлы находятся на некотором удалении друг от друга, то они соединяются прямой линией. Пример такого объединения показан на рис. 3.5 слева. При наложении граничных узлов объектов узлы отождествляются, как показано на рис. 3.5 справа. Наложение узлов не обязательно должно выполняться с идеальной точностью, достаточно попасть указателем в некоторую окрестность, диаметр которой задается в поле Snap distance диалогового окна Preferences.
Рис. 3.5. Объединение открытых объектов
При объединении двух открытых объектов результирующий контур приобретает параметры нижнего объекта. Соединение узлов происходит по правилу "ближайшего соседа". Результаты объединения нескольких открытых контуров предсказать сложнее. Правило объединения узлов не меняется, но часто по виду фигур трудно определить ближайших соседей, для этого нужна информация о расстояниях. Обводка результирующего контура зависит от некоторых свойств исходных контуров как объектов языка PostScript. Чтобы не вдаваться в тонкости языка, в большинстве практических случаев можно пользоваться следующим правилом. Результирующий контур приобретает параметры обводки одного из своих граничных элементов. Граничным называется элемент, который соединен с граничным узлом.
Рассмотрим левую часть рисунка 3.6. Определить визуально ближайших соседей для этого примера нетрудно. Это пары узлов 1 и 2, 3 и 4, 5 и 6. Узлы 7 и 8 в результирующем контуре, видимо, будут граничными. Надо ожидать, что результирующий контур примет параметры обводки отрезка (1, 8) либо линии (6, 7). Результаты операции подтверждают предположение – на рис 3.6 справа показан результирующий открытый контур.
Рис. 3.6. Объединение нескольких открытых объектов
Если обязательно требуется перенести на результат обводку некоторого составляющего контура, то можно объединять контуры попарно. Результаты объединения двух контуров всегда можно предсказать. Рис. 3.7 иллюстрирует процесс попарного объединения.
Рис. 3.7. Попарное объединение объектов
Этот метод дает хорошие результаты и в тех случаях, когда требуется управлять соединением отдельных контуров.