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

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

Ве́кторная гра́фика — способ представления объектов и изображений в компьютерной графике, основанный на математическом описании элементарных геометрических объектов, обычно называемых примитивами, таких как: точки, линии, сплайны, кривые Безье, круги и окружности, многоугольники.

Объекты векторной графики являются графическими изображениями математических объектов.

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

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

Обзор[править | править вики-текст]

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

Термин «векторная графика» используется в основном в контексте двумерной (2D) компьютерной графики.

Способ хранения изображения[править | править вики-текст]

Рассмотрим, к примеру, такой графический примитив, как окружность радиуса r. Для её построения необходимо и достаточно следующих исходных данных:

  1. координаты центра окружности;
  2. значение радиуса r;
  3. цвет заполнения (если окружность не прозрачная);
  4. цвет и толщина контура (в случае наличия контура);
  5. порядок плана (передний план, задний план).

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

Преимущества векторного способа описания графики над растровой графикой[править | править вики-текст]

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

Фундаментальные недостатки векторной графики[править | править вики-текст]

  • Не каждая графическая сцена может быть легко изображена в векторном виде — для подобного оригинальному изображению может потребоваться описание очень большого количество примитивов с высокой сложностью, что негативно влияет на количество памяти, занимаемой изображением и на время, потребное для преобразование его в растровый формат для графического вывода (отрисовки или растеризации).
  • Перевод векторной графики в растровое изображение достаточно прост. Но обратный путь, как правило, сложен — этот процесс называют трассировкой растра, и зачастую требует значительных вычислительных мощностей и процессорного времени, и не всегда обеспечивает высокое качество полученного векторного рисунка.
  • При этом спецификации векторных форматов (и, соответственно, рендереры векторной графики) намного сложнее таковых для растровой графики.
  • Преимущество векторной картинки — масштабируемость — пропадает, когда векторный формат отображается в растровое разрешение с особо малыми разрешениями графики (например, иконки 32×32 или 16×16). Чтобы не было «грязи», картинку под такие разрешения приходится подгонять вручную. В векторных шрифтах TrueType есть довольно сложные коды хинтинга, позволяющие избавиться от пропущенных (и, наоборот, излишне толстых) линий.

Типичные примитивные объекты[править | править вики-текст]

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

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

Векторные операции[править | править вики-текст]

Векторные графические редакторы, типично, позволяют вращать, перемещать, отражать, растягивать, скашивать, выполнять основные аффинные преобразования над объектами, изменять порядок и комбинировать примитивы в более сложные объекты.

Более изощрённые преобразования включают булевы операции на замкнутых фигурах: объединение, дополнение, пересечение и т. д.

Векторная графика идеальна для простых или составных рисунков, которые должны быть аппаратно-независимыми или не нуждаются в фотореализме. К примеру, PostScript и PDF используют модель векторной графики.

Некоторые редакторы векторной графики[править | править вики-текст]

Некоторые популярные форматы файлов векторной графики[править | править вики-текст]

  • SVG - формат, рекомендуемый для использования в Википедии.
  • CDR.
  • CGM.
  • DXF.
  • OpenVG.
  • GXL.
  • WMF.
  • EPS.
  • PDF.
  • AI.
  • SWF - формат для анимированной векторной графики.
  • DXE.
  • FLA.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]