Векторная графика

Векторная графика — это метод графического представления объекта в виде геометрических примитивов, таких как точки, линии, сплайны и многоугольники, в компьютерной графике [51].

Векторное представление (vector picture) — описание графического изображения с помощью геометрических объектов (графических примитивов) [40].

Графический примитив (graphics primitive) — простой геометрический объект векторного изображения [36].

Типичные примитивные объекты:

• многоугольники;

• окружности и эллипсы;

• линии и ломаные линии;

• кривые Безье (сплайны);

• безигоны;

• текст (в компьютерных шрифтах, таких, как TrueType, каждая буква создается из кривых Безье).

Этот список неполон. Есть разные типы кривых (Catmull-Rom сплайны, NURBS и т. д.), которые используются в различных приложениях. Также возможно рассматривать растровое изображение как примитивный объект, ведущий себя как прямоугольник.

Узел (node, junction) — начальная или конечная точка дуги в векторно-топологическом представлении (линейно-узловой модели) пространственных объектов типа линии или полигона [39].

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

 

• в векторном формате — достаточно лишь задать координаты начала и конца, цвет и толщину;

• в растровом формате — необходимо задать координаты каждой точки, входящей в этот отрезок, и ее цвет.

Замкнутые линии приобретают свойство заполнения. Охватываемое ими пространство может быть заполнено другими объектами (текстуры) или выбранным цветом (рис. 3.13). Например, изображение древесного листа описывается точками, через которые проходит линия, создавая тем самым контур листа. Цвет листа задается цветом контура и области внутри этого контура. Важным объектом векторной графики также является сплайн — кривая, посредством которой описывается та или иная геометрическая фигура. На сплайнах построены современные компьютерные шрифты TrueType и PostScript.

Рисунок 3.13. Векторный рисунок

 

В векторной графике изображения создаются путем комбинации различных объектов (рис. 3.14).

Рисунок 3.14. Векторная графика:

А — графические примитивы; В — векторное изображение

 

Форма, цвет и пространственное положение объектов, составляющих векторную графику, всегда описываются с помощью комбинации компьютерных команд и математических формул. Это позволяет компьютерным устройствам вычислять и помещать в нужном месте реальные точки при рисовании этих объектов. Векторную графику часто называют объектно-ориентированной [35].

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

Программы САПР работают с векторной графикой. На первый взгляд это может показаться сложнее, чем использование растровых массивов, но для некоторых видов изображений использование математических описаний является более простым способом [25]. В векторной графике объекты создаются путем комбинации различных объектов. Для создания объектов примитивов используются простые описания. Прямая линия, дуги, окружности, эллипсы и области однотонного или изменяющегося света — это двухмерные рисунки, используемые для создания детализированных изображений. В трехмерной компьютерной графике для создания сложных рисунков могут использоваться такие элементы как сферы, кубы.

 

Преимущества векторного способа описания графики

• Векторное изображение, не содержащее растровых объектов, занимает относительно небольшое место в памяти компьютера. Это связано с тем, что сохраняется не само изображение, а только некоторые основные данные, используя которые, программа всякий раз воссоздает изображение заново. Кроме того, описание цветовых характеристик почти не увеличивает размер файла. При изменении размеров изображения не изменяется размер файла. Так как формулы, описывающие изображение, остаются те же, меняется только коэффициент пропорциональности. С другой стороны, такой способ хранения информации имеет и свои недостатки. Например, если делать очень сложную геометрическую фигуру (особенно если их много), то размер «векторного» файла может быть гораздо больше, чем его «растровый» аналог из-за сложности формул, описывающих такое изображение.

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

• Огромная точность векторного изображения (до сотой доли микрона).

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

• Отсутствие проблем с экспортом векторного изображения в растровое. Обычно указывают размеры в аппаратно-независимых единицах (англ. device-independent unit), которые ведут к наилучшей возможной растеризации на растровых устройствах.

• Развитые средства интеграции изображений и текста, единый подход к ним. Поэтому программы векторной графики незаменимы в области дизайна, технического рисования, для чертежно-графических и оформительских работ.

• Объекты на векторном изображении располагаются в виде слоев и могут перекрываться без всякого воздействия друг на друга. Таким образом, можно редактировать любой из объектов рисунка, не оказывая влияния на остальные.

 

Недостатки векторной графики

• Природа избегает прямых линий, а они являются основными компонентами векторных рисунков. До недавнего времени это означало, что уделом векторной графики были изображения, которые никогда не старались выглядеть естественно, например, двухмерные чертежи и круговые диаграммы, созданные специальными программами САПР, двух- и трехмерные технические иллюстрации, стилизованные рисунки и значки, состоящие из прямых линий и областей, закрашенных однотонным цветом.

• Не каждый объект может быть легко изображен в векторном виде. Кроме того, количество памяти и времени на отображение зависит от числа объектов и их сложности.

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

• Невозможно применение обширной библиотеки эффектов, используемых при работе с растровыми изображениями.

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

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

• Для векторной графики свойственна программная зависимость: каждая программа сохраняет данные в своем собственном формате, поэтому изображение, созданное в одной векторной программе, как правило, не конвертируется в формат другой программы без погрешностей. Кроме того, векторный принцип описания изображения не позволяет автоматизировать ввод графической информации, как это делает сканер для растровой графики.

• Существует очень узкий класс устройств, ориентированных исключительно на отображение векторных данных. К ним относятся мониторы с векторной разверткой, графопостроители, а также некоторые типы лазерных проекторов. Современные компьютерные видеодисплеи отображают информацию в растровом формате. Для отображения векторного формата на растровом используются преобразователи, программные или аппаратные, встроенные в видеокарту. Для удобства обработки объекты векторной графики не преобразовываются в растровую форму вплоть до последнего момента — пока не будут определены все размеры и разрешение принтера. Так, например, PostScript принтеры имеют аппаратный растеризатор (RIP — Raster Image Proceccor), который преобразует векторные данные на языке PostScript в растровую форму.

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

Рисунок 3.15. Векторные иллюстрации



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

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

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

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

Рисунок 3.16. Отображение отрезков прямой (AD, AC, AB) в векторной и растровой графике

Для просмотра или редактирования векторных изображений требуются специальные программы. Наиболее популярными редакторами на данный момент являются Adobe Illustrator и CorelDRAW, FreeHand и др.

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

Работа с графикой предполагает использование как векторной, и растровой ее форм. Для качественного выполнения необходимых графических задач необходимо знать сильные и слабые стороны обеих ее форм. Сравнительная характеристика растровой и векторных форм представлена в табл. 1.

 

Таблица 1 - Сравнение растровой и векторной графики

Растровая графика Векторная графика
Базовым элементом изображения является пиксель Базовым элементом изображения является линия
Изображение хранится в виде простой таблицы пикселей, каждый из которых имеет свой цвет Изображение хранится в виде набора линий, каждая из которых имеет координаты начала и конца, форму и цвет
Качество изображения определяется разрешением оригинала и глубиной цвета Качество изображения определяется четкостью контуров объектов  
Растровая графика Векторная графика
Масштабирование изображения может привести к ухудшению качества, так как при увеличении наблюдается пикселизация     Масштабирование изображения происходит без потери качества и практически без увеличения размеров исходного графического файла
Изображение плохо поддается трансформации (поворот, искривление и т. п.). Процедуры, которые применяются для трансформации рисунка, проходят с искажениями.     Объекты векторной графики легко трансформируются, что не оказывает практически никакого влияния на качество изображения
Изображение выглядит вполне реально, так как каждый пиксель передает цвет. Можно получать живописные эффекты, скажем, туман или дымку, добиваться тончайшей настройки цвета, создавать глубину, размытость, акварельность и т. п.     Векторное изображение выглядит не совсем естественно. Это хорошо подходит для искусственных объектов инженерной графики и не годится для фотореалистичных изображений с большим количеством оттенков или мелких деталей
Хранение изображения требует больших ресурсов памяти компьютера, так как размер растрового файла — это произведение площади изображения на разрешение и на глубину цвета (если они приведены к единой размерности)     Для хранения изображения требуется небольшой объем памяти. Размер файла не зависит от размера изображения, так как сохраняется не само изображение, а только некоторые основные данные (координаты узлов, форма, цвет и т. п.)
Простота и техническая реализуемость автоматизации ввода (цифрования) графической информации. Существует развитая система устройств для ввода изображений — сканеров, видеокамер, цифровых фотоаппаратов     Растровая графика Сложность векторного принципа описания изображения не позволяет автоматизировать ввод графической информации и сконструировать устройство, подобное сканеру для растровой графики   Векторная графика
Устройства вывода, такие как мониторы, принтеры, плоттеры и прочие, для создания изображений используют наборы точек, т. е. также имеют растровый формат. Поэтому растровые изображения легко и быстро выводятся на такие устройства, так как компьютерам легко управлять устройством вывода для представления отдельных пикселов с помощью точек Векторные изображения долго выводятся на экран и на принтер. Устройства вывода выводят изображение по точкам, поэтому программе вывода необходимо проделать специальные процедуры расчета по переводу векторного формата в растровый (растеризация изображения)
Качество изображения при выводе на монитор, принтер и прочие устройства зависит от соотношения разрешения оригинала изображения и разрешения печатающего устройства. Если разрешающая способность устройства вывода гораздо ниже или ниже, чем разрешение оригинала, то может наблюдаться пикселизация изображения. Дает прекрасное качество печати. Она максимально использует возможности разрешения печатающего устройства: изображение всегда будет настолько качественным, насколько способно данное устройство.

 

 

Форматы векторной графики

В отличие от растровых форматов, в сфере векторной графики практически отсутствуют стандартные форматы, которые могли бы использоваться различными программами и на разных платформах. Почти все векторные графические программы имеют свои собственные форматы, что связано, скорее всего, со спецификой алгоритмов формирования векторного изображения (рис. 3.17). Файлы векторных форматов содержат описания изображения в виде набора команд для построения графических примитивов, а также некоторую дополнительную информацию. Различные векторные форматы отличаются набором команд и способом их кодирования. Но так как в векторной графике иногда существует необходимость переноса файлов между различными приложениями, то своего рода стандартом стали файловые форматы WMF, CDR, AI и др. Также получили популярность некоторые универсальные форматы, поддерживающие как векторные, так и растровые изображения: EPS, PDF.

Рисунок 3.17. Форматы векторной графики