Текст книги "Компьютерная графика в дизайне"
Автор книги: Дмитрий Миронов
Жанр: Техническая литература, Наука и Образование
сообщить о неприемлемом содержимом
Текущая страница: 12 (всего у книги 39 страниц) [доступный отрывок для чтения: 13 страниц]
Соединением называется операция редактирования, выполняющаяся над несколькими графическими объектами, в результате которой получается соединенная линия. Исходными объектами могут быть не только линии, но и экземпляры других классов графических объектов, например, примитивы или тексты.
Примечание
При выполнении операции соединения все исходные объекты, не являющиеся линиями, по умолчанию преобразуются в линии, после чего, конечно, к ним уже нельзя применять методы их исходных классов.
В качестве исходных для операции соединения не могут выступать составные объекты (см. разд. 2.7.3). Однако их можно предварительно разъединить. Разъединением называется операция, в результате которой исходный составной объект преобразуется в группу объектов других классов (см. разд. 2.7.2).
Исходным объектом для операции разъединения может служить и соединенная линия. Тогда в результате этой операции получается столько отдельных односвязных линий, сколько ветвей было в соединенной линии.
Примечание
Даже если соединенная линия была создана в результате соединения объектов различных классов, то после операции разъединения все равно получатся только односвязные линии, первоначальные объекты восстановлены не будут.
Частный случай разъединения – отделение ветви. В результате этой операции выделенная ветвь соединенной линии становится самостоятельной линией, а число ветвей соединенной линии уменьшается на единицу.
Операция замыкания линии может выполняться в двух вариантах: автоматическом и ручном. В первом случае операция над выделенной линией автоматически добавляет к каждой из ее незамкнутых ветвей по прямолинейному сегменту, соединяющему краевые узлы, в результате чего те становятся замкнутыми. В ручном варианте вначале выделяются краевые узлы ветви, которую следует замкнуть, после чего строится замыкающий сегмент.
Примечание
Выполнение операции замыкания над замкнутой линией не приводит к каким-либо результатам.
Операция изменения направления линии приводит к тому, что начальный узел линии становится конечным, конечный – начальным, а последовательность узлов и сегментов линии изменяется на обратную. Если операция выполняется над соединенной линией, то все указанное проделывается над каждой ветвью этой линии.
Во многих случаях бывает необходимо сократить число узлов и сегментов линии таким образом, чтобы ее общая форма изменилась минимально. Для этого служит операция сглаживания линии, выполняемая только способом параметризации, при котором пользователь задает степень сглаживания. Фактически она сводится к удалению некоторого числа узлов линии с соответствующими им сегментами.
2.3.5. Преобразование в линииКак уже многократно отмечалось, векторная информационная модель изображения включает в себя графические объекты многих классов. Это обусловлено тем, что специализированные классы объектов более удобны для решения различных задач, возникающих в работе над графическими проектами. Но удобство в решении отдельных задач достигается за счет снижения гибкости.
Например, текст можно изобразить с помощью линий или параметрических примитивов, "вырисовывая" каждую букву, но удобней сделать это на основе объектов векторного текста (они описаны в главе 2.5). Такие объекты позволяют легко выполнять операции верстки и допускают некоторые варианты деформации символов текста, но иногда этого бывает недостаточно. В этом случае можно воспользоваться преобразованием части текста в линии. Основное преимущество линий – у этого класса имеется много гибких методов для редактирования (рис. 2.3.10).
Рис. 2.3.10. Пример перевода части текста в линии
К сожалению, преобразование в линии необратимо, поэтому его рекомендуется применять только к тем частям изображения, которые действительно требуют максимальной гибкости в редактировании.
2.3.6. Логические операцииЛогические операции – это операции редактирования, позволяющие построить линию, форма и структура которой определяются ранее построенными графическими объектами и типом логической операции, которая над ними выполняется. Как правило, перед выполнением подобной операции требуется выделить участвующие в ней объекты.
Логические операции представляют собой неспецифические методы совокупности графических объектов. В графических редакторах они реализуются способом параметризации с помощью меню и командных кнопок.
Объединение – логическая операция, состоящая в удалении перекрывающихся частей объединяемых объектов и составлении из оставшихся фрагментов их линий новой линии, совпадающей с совокупным абрисом этих объектов. При объединении непересекающихся объектов результат будет тот же, что при их соединении (см. разд. 2.3.4) – соединенная линия с несколькими ветвями. То же произойдет при участии в операции объединения замкнутого и незамкнутого объектов.
Примечание
Если один или несколько объединяемых объектов не являются объектами класса "линия", то перед выполнением операции они преобразуются в линии. Некоторые объекты нельзя преобразовать в линии непосредственно (например, составные объекты, см. главу 2.8) и рамки простого текста (см. разд. 2.5.3). Такие объекты не могут участвовать в логических операциях.
Операция объединения удобна для построения линий сложной формы, состоящих из фрагментов графических примитивов или ранее построенных графических объектов. На рис. 2.3.11 представлен пример построения формы бокала из графических примитивов и результатов простейшего их редактирования.
Рис. 2.3.11. Объединение нескольких замкнутых графических объектов: а – исходное расположение; б – результирующая линия
Пересечение – логическая операция, состоящая в удалении неперекрывающихся частей пересекаемых объектов и построении нового (новых) объектов из их перекрывающихся частей. В операции могут участвовать две совокупности объектов – пересекаемые и пересекающие. Новые объекты строятся из всех попарных пересечений пересекаемых и пересекающих.
При наличии у пересекаемых объектов заливки и обводки (см. главу 2.4) значения их атрибутов будут унаследованы объектами, полученными при пересечении. Как правило, операция пересечения выполняется над двумя выделенными объектами. Если пересекаемых или пересекающих объектов больше одного, перед выполнением операции пересечения следует построить из них две группы (см. разд. 2.7.2).
На рис. 2.3.12 группа пересекаемых объектов состоит из прямоугольников, группа пересекающих – из эллипсов.
Рис. 2.3.12. Операция пересечения: а – исходное расположение групп пересекаемых и пересекающих объектов; б – результирующие объекты
Примечание
В результате пересечения пары графических объектов всегда получается одна линия (возможно, соединенная, состоящая из нескольких ветвей).
Исключение – логическая операция, состоящая в удалении перекрывающихся частей исходного и исключаемого объекта (объектов).
При наличии у исходных объектов заливки и обводки (см. главу 2.4) значения их атрибутов будут унаследованы объектами, полученными при исключении. Как правило, операция исключения выполняется над двумя выделенными объектами. Если пересекаемых или пересекающих объектов больше одного, то перед выполнением операции пересечения следует построить из них две группы (см. разд. 2.7.2).
Рис. 2.3.13. Операция исключения: а – расположение исходных объектов; б – результирующий объект
Исключаемым объектом может быть незамкнутая линия. Если при этом она пересекает замкнутый объект, этот объект превращается в соединенную линию, состоящую из двух ветвей. Если исключаемая линия пересекает границу замкнутого объекта только один раз, в нем возникает «надрез». «Надрез» по форме исключаемой линии представляет собой пары сегментов одинаковой формы, лежащие вплотную друг к другу.
На рис. 2.3.14 представлен результат трехкратного применения операции исключения.
Рис. 2.3.14. Результат трехкратного выполнения операции исключения
Первую операцию исключения выполнили над прямоугольником, из которого исключили ломаную, однократно пересекавшую его границу в правом нижнем углу. Края «надреза» развели, сместив узлы вверх и вниз. Затем из получившейся фигуры исключили надпись. После этого исключили ломаную, пересекавшую всю фигуру. Наконец, составную кривую разъединили на две, верхнюю из которых сместили вверх и развернули.
Список новых терминов• Узел
• Сегмент
• Краевой узел
• Промежуточный узел
• Начальный узел
• Направление линии
• Управляющая схема
• Направляющая рукоятка
• Точка излома
• Сглаженный узел
• Симметричный узел
• Ветвь линии
• Соединенная линия
• Разрезание узла
• Слияние узлов
• Соединение объектов
• Разъединение объектов
• Отделение ветви
• Замыкание линии
• Сглаживание линии
• Преобразование в линии
• Логические операции
• Объединение
• Пересечение
• Исключение
Контрольные вопросы1. Чем объясняется исключительная роль информационной модели линии в работе с векторными изображениями?
2. В чем разница между кривыми и прямыми линиями?
3. Какие подобъекты включаются в информационную модель линии?
4. Какую роль в информационной модели линии играют узлы?
5. Какую роль в информационной модели линии играют сегменты?
6. Каково соотношение числа узлов и сегментов?
7. Для какой цели служит начальный узел линии?
8. Каким образом при создании линии определяется, который из узлов будет начальным?
9. Что определяется направлением линии?
10. Что представляет собой управляющая схема и для чего она применяется?
11. Какую роль в управляющей схеме узла играют направляющие рукоятки?
12. Чем различаются типы узлов линии?
13. Почему со стороны прямолинейного сегмента направляющая рукоятка узла линии не отображается?
14. Каковы особенности поведения узлов типа "точка излома"?
15. Каковы особенности поведения узлов типа "сглаженный"?
16. Каковы особенности поведения узлов типа "симметричный"?
17. Каким образом определяется, является ли линия замкнутой?
18. Чем обычная линия отличается от соединенной?
19. Каковы преимущества и недостатки построения линий инструментом свободного рисования?
20. Какие атрибуты задаются для каждого узла при работе инструментом построения узлов?
21. За счет чего повышается скорость работы при использовании инструмента построения ломаной линии?
22. Для чего необходима операция выделения узлов линии?
23. Какими способами можно перемещать выделенные узлы линии?
24. Что происходит при разрезании выделенного узла линии?
25. Что происходит при слиянии выделенной пары узлов линии?
26. Для чего может потребоваться добавление и удаление узла линии?
27. Какие ограничения накладываются на перемещение направляющих рукояток при редактировании узлов различных типов?
28. Что происходит при выполнении операции соединения?
29. Что происходит при выполнении операции разъединения?
30. Чем отделение ветви отличается от разъединения объекта?
31. Какие действия выполняются при замыкании соединенной линии?
32. Что происходит при изменении направления соединенной линии?
33. Для какой цели выполняется сглаживание линии?
34. Какие преимущества дает преобразование в линии и какие недостатки с ним связаны?
35. Чем объединение отличается от соединения?
36. Что может получиться в результате пересечения двух колец?
37. В чем особенности выполнения операции исключения, если один из исключаемых объектов представляет собой незамкнутую линию?
Темы для обсуждения1. Альтернативные информационные модели линий.
2. Приемы перемещения узлов, основанные на геометрических преобразованиях.
3. Изобразительные возможности линий в работе над графическими проектами.
4. Задачи графического проектирования, требующие преобразования в линии.
5. Изобразительные возможности логических операций в работе над графическими проектами.
2.4. Обводка и заливка объектов
В предыдущих главах, посвященных параметрическим примитивам и линиям, рассматривались преимущественно форма, расположение и размеры графических объектов. В этой главе рассматриваются неспецифические (т. е. свойственные многим классам графических объектов) атрибуты, определяющие внешний вид графических объектов, который они получат в процессе рендеринга: атрибуты обводки и заливки.
Обводка – это совокупность параметров информационной модели, управляющих цветом, шириной и другими характеристиками отображения линий. Заливка – это совокупность параметров информационной модели, определяющая способ графического заполнения внутренней части замкнутых объектов.
2.4.1. ОбводкаВ предыдущих разделах все линии условно считались одинаковыми. Пока речь шла о приемах работы с их формой, это было допустимо. Но в практике графического проектирования приходится пользоваться различными линиями: широкими и узкими, сплошными и штриховыми, красными, синими и любых других цветов. Чтобы разделить форму и внешний вид линии, предположим, что линия – это тонкое прозрачное стекловолокно. Поскольку оно тонкое, его можно изгибать произвольным образом. Так как оно прозрачное, то его нельзя увидеть. Но стекловолокно можно сделать видимым, надев на него непрозрачный (или частично прозрачный) чехол. Этот чехол, похожий на изолирующую оболочку электрических проводов, может быть любого цвета и толщины, иметь специальные наконечники и обладать многими другими свойствами. Именно такой «чехол», представляющий собой метафору обводки, и виден на изображении. Но длина и форма этого чехла определяются исключительно линией, на которую он надет.
В литературе по векторной графике существует достаточно много терминов для обозначения обводки: контур, контурная линия, линия обводки, обводка контура, обводка абриса.
К основным атрибутам, определяющим внешний вид обводки, относятся:
• Толщина
• Вид
• Завершители
• Углы
• Наконечники
• Цвет
• Масштабируемость толщины
• Расположение относительно заливки
• Форма пишущего инструмента
• Параметры размеров пишущего инструмента
Методов, связанных с обводкой, немного, поскольку большинство значений атрибутов задаются способом параметризации (как правило, с помощью диалогового окна с соответствующими элементами управления). В настоящей главе рассматриваются два метода:
• отделение обводки;
• настройка пишущего инструмента.
Толщиной обводки называется расстояние от ее края до противоположного края, измеренное вдоль направления нормали к линии, задающей форму обводки. По традиции, позаимствованной из полиграфии, толщину линии измеряют в пунктах (pt, 1/72 дюйма или 0,35 мм). На рис. 2.4.1 показана последовательность, в которой толщина обводки каждой последующей линии в два раза больше предыдущей. Толщина обводки верхней линии составляет половину пункта, нижней – 16 пунктов.
Рис. 2.4.1. Влияние значения атрибута толщины на внешний вид обводки
Обводка располагается симметрично относительно обведенной линии. Это следует иметь в виду при назначении толщины обводки небольших замкнутых линий, т. к. обводка может перекрыть внутренний просвет целиком.
Вид или стиль обводки – это заранее установленное сочетание штрихов и просветов, повторяющееся вдоль всей обводимой линии. Как правило, программы векторной графики предоставляют пользователю как стандартные виды обводки, так и возможность описывать заказные виды. На рис. 2.4.2 представлены некоторые стандартные виды обводки.
Рис. 2.4.2. Примеры стандартных видов обводки толщиной 3 пункта
Примечание
Длина штрихов и просветов задается не в относительных величинах, а в процентах от толщины обводки. Поэтому длина штрихов обводки толщиной 3 и 6 пунктов будет различаться тоже в два раза.
Завершителем называется способ выполнения обводки краевых узлов линии. Завершители имитируют работу самыми распространенными чертежными инструментами: плакатным пером, трубочкой и фломастером с квадратным сечением пишущего элемента. На рис. 2.4.3 представлены линии с завершителями (начальные узлы линий показаны квадратиками).
Рис. 2.4.3. Варианты завершителей обводки. Сверху вниз: срез, закругление, квадрат
Существуют три варианта завершителей:
• Срез – обводка просто «обрезается» перпендикулярно обводимой линии через краевые точки. В этом варианте пишущий инструмент представляет собой аналог плакатного пера с шириной, равной толщине обводки, и нулевой высотой. При выполнении обводки перо перемещается так, что его центр всегда находится на обводимой линии, и при этом перо в любой точке перпендикулярно данной линии.
• Закругление – обводка «обрезается» по окружности с диаметром, равным толщине обводки, а центр располагается в краевом узле. Пишущий инструмент представляет собой аналог стеклянной трубочки с тушью, диаметр которой равен толщине обводки. При выполнении обводки трубочка перемещается так, что ее центр всегда находится на обводимой линии.
• Квадрат – обводка «обрезается» по квадрату со стороной, равной толщине обводки, центр которого располагается в краевом узле. Пишущий инструмент представляет собой аналог фломастера с квадратным сечением стержня.
Примечание
Завершители обводки всех краевых узлов как обычной, так и составной линии всегда выполняются однотипно.
Угол – это способ выполнения обводки в промежуточных узлах линии, имеющих тип «точка излома». На рис. 2.4.4 приведены три типа углов обводки.
Рис. 2.4.4. Типы углов обводки в точках излома. Слева направо: заостренный, закругленный и срезанный
Первый тип угла обводки называется заостренным. В этом случае обводка продолжается по направлению смыкающихся в узле сегментов до пересечения друг с другом. Для закругленного угла радиус закругления равен половине толщины обводки. При формировании срезанного угла обводки по смыкающимся в узле сегментам обводка выполняется как для краевого узла с завершителем типа «срез» (см. ранее), а затем добавляется треугольник, формирующий сам срез.
Наконечник обводки – это стандартный графический фрагмент, размещаемый как часть обводки в краевых узлах обводимой линии. Размер наконечника определяется толщиной обводки, а ориентация – направлением краевого сегмента в соответствующем ему краевом узле. Кроме стандартных наконечников могут использоваться заказные, подготовленные пользователем. Примеры наконечников приведены на рис. 2.4.5.
Рис. 2.4.5. Наконечники обводки
Для начального и конечного узлов наконечники задаются индивидуально.
Примечание
В составной линии при выборе наконечников во всех незамкнутых ветвях будут отображены одинаковые пары наконечников.
Цвет обводки задают с помощью цветовых моделей, описанных в главе 1.3. Обычно цвет выбирают способом параметризации с помощью специальных элементов интерфейса – палитр и диалоговых окон-селекторов.
На всей площади обводки ее цвет остается неизменным. В тот же цвет окрашиваются и наконечники обводки.
Соотношение размера объекта и толщины его обводки сильно влияет на вид изображения. Поскольку вид графических объектов в ходе редактирования может радикально меняться под действием преобразований, то и упомянутое соотношение изменяется (особенно это заметно при непропорциональном масштабировании, см. разд. 2.6.6).
На рис. 2.4.6 изображены две группы объектов, полученных преобразованием в линии букв "П" и "О". Здесь в верхнем ряду представлены исходные объекты, в среднем – результаты их пропорционального масштабирования с коэффициентом 0,5, а в нижнем – результаты их непропорционального масштабирования только по вертикальной оси локальной системы координат с коэффициентом 0,5.
Рис. 2.4.6. Режимы сохранения (слева) и пропорционального изменения (справа) толщины обводки при масштабном преобразовании
В объектах левой группы толщина обводки сохраняется независимо от преобразования. Для объектов правой группы задано пропорциональное изменение толщины обводки при преобразованиях, влияющих на размер объекта. Выбор режима масштабируемости толщины осуществляется способом параметризации.
При необходимости обводку линии или иного графического объекта можно преобразовать в самостоятельный графический объект класса «линия». Эта операция обычно выполняется командой меню, поскольку не требует введения значений параметров.
В результате ее выполнения исходный графический объект утрачивает обводку (ей присваиваются значения атрибутов по умолчанию), но появляется замкнутая линия с однородной заливкой (см. разд. 2.4.2), цвет которой определяется исходным цветом обводки.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?