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

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

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

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

Термин «векторная графика» используется для пояснения различий от растровой графики, в которой изображение представлено в виде графической матрицы.

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

Обзор[править | править код]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Некоторые форматы[править | править код]

  • SVG — формат, рекомендуемый для использования в Википедии.
  • EMF
  • CDR.
  • CGM.
  • DXF.
  • OpenVG.
  • GXL — редко используемый формат.
  • WMF.
  • EPS.
  • PDF.
  • AI.
  • SWF — (Small Web Format; ранее расшифровывалось как Shockwave Flash, что вызывало путаницу с ShockWave) стандартное расширение для скомпилированных flash-файлов (анимации, игр и интерактивных приложений). SWF-файлы можно просматривать с помощью свободных плееров Gnash или swfdec. Для создания и работы с файлами SWF можно использовать свободный пакет программ командной строки SWFTools.
  • DXE.
  • FLA.

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

Ссылки[править | править код]