Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Инженерка.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
5.69 Mб
Скачать

3.5. Элементы (объекты) векторной графики

Познакомимся более детально с основными элементами векторно­го рисунка, рассмотренными ранее в подразделе «Структура векторной иллюст­рации».

Линии

Как уже отмечалось, в основе векторной графики лежит использование математи­ческих представлений о свойствах контуров, основу которых составляет элемен­тарный объект векторной графики линия. С ее помощью можно легко построить любой более сложный объект. Например, объект четырехугольник можно создать с помощью четырех линий, а куб - с помощью 12 линий или 6 четырехугольников. Таким образом, иллюстрация составляется из простых объектов, как из кубиков.

Благодаря этому процесс рисования а векторных редакторах фактически сводит­ся к созданию контуров (объектов) нужной формы и приданию им определенных заливок и обводок. Этот принцип лежит в основе всех программ векторной графи­ки. Различаются лишь приемы работы и некоторые специальные эффекты.

В то же время построение линии наряду с использованием для ее описания математи­ческого аппарата предполагает задание ряда дополнительных атрибутов, определяю­щих ее основные свойства: форму, толщину, цвет, стиль (сплошная, пунктирная и т. п.). Количество перечисленных атрибутов зависит от вида линии. Открытые линии, напри­мер, в отличие от замкнутых не имеют атрибута заливки (рис. 3.4). Замкнутые кон­туры кроме обводки могут иметь определенную пользователем заливку).

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

Рис. 3.4. Иллюстрация свойств векторного объекта Линия: 1) прямолинейный незамкнутый контур (линия), нарисованный в программе Corel XARA 2 инструментом Рисунок от руки (Freehand) при нажатой клавише Alt без атрибута обводки (слева) и с добавлением обводки (справа) толщиной 4 пункта (4pt); 2) замкнутая линия в виде эллипса без заливки (слева) и с заливкой(справа)

Кривые Безье

В настоящее время кривые Безье присутствуют практически в любом современном графиче­ском пакете. Достаточно сказать, что все компьютерные шрифты состоят из кривых Безье. Кривые Безье находят также широкое применение и в растровой графике. Так, в программе Photoshop используется термин контур (path), базирующийся на кривых Безье. Именно с помощью этого инструмента вы можете выделить на сканированной фотографии нужный объект (например, для его вырезания), кото­рый будет использован при создании фотомонтажа.

Отрезками такой кривой можно аппроксимировать сколь угодно сложный кон­тур. В этом случае он будет состоять из набора кривых Безье. В местах сочленений сформированная из отрезков кривой Безье линия может иметь изломы. Однако с помощью функции сглаживания (smooth) управляющие точки соседних отрезков легко выстраиваются в одну линию, после чего излом исчезает. Гибкость в построении и редактировании кривых Безье во многом определяется характеристиками узловых и управляющих точек, свойства которых будут рассмот­рены в следующем разделе.

Появление кривых Безье вызвало настоящий переворот в видео и трехмерной гра­фике. Это связано с тем, что до появления формул Безье контуры компьютерных персонажей были ломаными, поверхности - гранеными, а движение - прерывистым, скачкообразным, неестественным. Использование кривых Безье позволило реализовать наиболее общий и интуитивно понятный способ управления движе­нием. В соответствии с ним параметрам кривой можно поставить в соответствие параметры движения компьютерного персонажа. В результате движение будет про­исходить по тем же рассмотренным нами правилам. Таким образом, знаменитая кривая используется не только в двухмерной компьютерной графике, но и в трех­мерной графике, видео и анимаций.

Узлы (Опорные точки)

Наряду с линией (line) другим основным элементом векторной графики является узел (опорная точка). Как уже отмечалось, линии и узлы используются для по­строения контуров, которые могут быть представлены в виде прямой, кривой или формы. Каждый контур имеет несколько узлов.

В векторных редакторах (как, впрочем, и в растровых) форму контура изменя­ют путем манипуляции узлами. Это можно сделать одним из следующих спо­собов:

  • перемещением узлов;

  • изменением свойств узлов (в том числе атрибутов связанных с ними касательных линий и управляющих точек, рис. 3.5);

  • добавлением или удалением узлов.

Рис. 3.5. Невыделенные узловые точки

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

Касательные линии и управляющие точки

При выделении узловой точки криволинейного сегмента у нее появляются одна или две управляющие точки, соединенные с узловой точкой касательными линия­ми, Управляющие точки изображаются черными закрашенными точками. Распо­ложение касательных линий и управляющих точек определяет длину и форму (кри­визну) криволинейного сегмента, а их перемещение приводит к изменению формы контура.

В локализованных версиях векторных программ наряду с термином касательные используются и другие термины: рычаги управления, направляющие и «усы». Фор­ма и цвет управляющих точек также зависят от используемого редактора. Если в CorelDRAW они, как и выделенные узлы, обозначаются черными квадратиками, но меньшего размера, то в Corel XARA они закрашены красным цветом, а выде­ленный узел отображается незакрашенным квадратом.

Типы узловых точек

Касательная линия всегда является касательной к сегменту кривой в узловой точ­ке. Ее наклон и длина определяют наклон и радиус изгиба соответствующего кри­волинейного сегмента. Перемещение узловых точек и настройка касательных ли­ний позволяют изменять форму криволинейных сегментов. Различают три типа уз­ловых точек:

  • гладкий узел (smooth node);

  • симметричный узел (symmetrical node);

  • острый узел (cusp node).

Симметричный узел

У симметричного узла оба отрезка касательных по обе стороны точки привязки имеют одинаковую длину и лежат на одной прямой, которая показывает направ­ление касательной к контуру в данной узловой точке (рис. 3.6). Это означает, что кривизна сегментов с обеих сторон точки привязки одинакова (в данной точке не претерпевают разрыва первая и вторая производные кривой).

Изменение положения управляющей точки приводит к соответствующему изме­нению угла наклона касательной к кривой. Изменение длины касательной линии с одной стороны точки привязки путем перемещения управляющей точки приво­дит к соответствующему изменению и второй касательной линии, что изменяет радиус кривизны линии в точке привязки.

В CorelDRAW, например, симметричные узлы создаются автоматически при рисовании кривых инструментом Bezier (Кривая Безье) методом перетаскивания. Поскольку этот тип уз­лов является частным случаем гладких узлов в большинстве программ векторной гра­фики (например, в Corel Хаrа), он не выделен в виде самостоятельного типа узла.

Рис. 3.6. У симметричной узловой точки длина обоих отрезков

касательных одинакова, и они лежат на одной прямой

Гладкий узел

У гадкой узловой точки оба отрезка касательных линий по обе стороны точки при­вязки лежат на одной прямой, которая показывает направление касательной к кри­вой в данной точке, но длина управляющих линий разная. Это говорит о том, что кривизна криволинейных участков, прилегающих к этой опорной точке, различна с разных ее сторон. Математически это значит, что в данной точке нет разрыва первой производной, но вторая производная кривой претерпевает разрыв.

Изменение длины касательной линии с одной стороны точки привязки путем пе­ремещения управляющей точки приводит к соответствующему изменению радиу­са кривизны этого криволинейного сегмента с одной стороны узловой точки. При этом длина второго отрезка касательной линии (с другой стороны узловой точки) не изменяется.

Острый узел

У острого узла касательные линии с разных сторон этой точки не лежат на одной прямой. Поэтому два криволинейных сегмента, прилегающих к опорной точке, имеют различную кривизну с разных сторон узловой точки и контур в этой точке образует резкий излом (рис. 3.7). Здесь радиус кривизны и угол наклона каса­тельной для каждого криволинейного сегмента можно регулировать независимо друг от друга соответствующим изменением длины и угла наклона касательной линии для каждого прилегающего к опорной точке криволинейного сегмента в отдельности. В частности, один из отрезков касательных может быть равен нулю. В этом случае форма сегмента кривой будет регулироваться только одним отрезком касательной, а не двумя, как это было в предыдущих случаях.

Рис. 3.7. Три варианта острых узлов: без управляющих точек (1), с одной управляющей точкой (2) и двумя (3). В последнем случае кривизну сегментов контура в острой узловой точке можно изменять независимо для каждого сегмента

Примитивы (Формы)

Наряду с разнообразными кривыми, основу которых составляют кривые Безье, векторные редакторы имеют в своем составе специальные инструментальные сред­ства для создания простых форм (графических примитивов), что упрощает постро­ение сложных объектов.

Часто наряду со своим прямым назначением простые формы используются в ка­честве исходных заготовок для создания на их базе более сложных объектов. В этом случае для последующего редактирования созданных заготовок необходимо привлечение рассмотренной нами ранее технологии редактирования кривых Безье с помощью пе­ремещения узлов и управляющих точек. Однако все не так однозначно. Для осу­ществления этой процедуры в некоторых редакторах требуется выполнить специ­альное преобразование примитивов в кривые Безье, поскольку их математическое описание в некоторых редакторах отличается от формул, заложенных в построе­ние кривых Безье.

Комбинированные объекты

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

  • группировку объектов;

  • объединение объектов;

Группировка объектов

Операция группировки состоит в объединении двух или более объектов (конту­ров) в одну группу. С полученным таким образом сгруппированным объектом можно обращаться как с единым объектом. Его можно перемешать, поворачивать, растягивать и выполнять многие другие операции без искажения взаимного рас­положения и пропорций входящих в него объектов.

При реализации операции группировки можно использовать несколько уровней группировки. В этом случае разгруппировка объектов происходит в обратном по­рядке с сохранением иерархии группировки.

Объединение объектов

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

В современных векторных редакторах предусмотрены различные варианты слия­ния объектов. Наиболее распространенными из них являются три процедуры, прин­цип действия которых основан на использовании базовых логических операций ИЛИ, И, И-НЕ.