Векторная графика — это форма компьютерной графики , в которой визуальные изображения создаются непосредственно из геометрических фигур, определенных на декартовой плоскости , таких как точки , линии , кривые и многоугольники . Связанные механизмы могут включать в себя оборудование для векторного отображения и печати , модели векторных данных и форматы файлов, а также программное обеспечение, основанное на этих моделях данных (особенно программное обеспечение для графического дизайна , системы автоматизированного проектирования и географические информационные системы ). Векторная графика является альтернативой растровой или растровой графике, каждая из которых имеет свои преимущества и недостатки в конкретных ситуациях. [1]
Хотя векторное оборудование в значительной степени уступило место растровым мониторам и принтерам, [2] векторные данные и программное обеспечение продолжают широко использоваться, особенно когда требуется высокая степень геометрической точности и когда сложная информация может быть разложена на простые геометрические примитивы. Таким образом, это предпочтительная модель для таких областей, как инженерия , архитектура , геодезия , 3D-рендеринг и типографика , но она совершенно не подходит для таких приложений, как фотография и дистанционное зондирование , где растр более эффективен и действенный. В некоторых областях приложений, таких как географические информационные системы (ГИС) и графический дизайн , в зависимости от цели иногда используется как векторная, так и растровая графика.
Векторная графика основана на математике аналитической или координатной геометрии и не связана с другими математическими применениями термина « вектор» . Это может привести к некоторой путанице в дисциплинах, в которых используются оба значения.
Логическая модель данных векторной графики основана на математике координатной геометрии , в которой формы определяются как набор точек в двух- или трехмерной декартовой системе координат , как p = ( x, y ) или p = ( х, у, z ). Поскольку почти все фигуры состоят из бесконечного числа точек, векторная модель определяет ограниченный набор геометрических примитивов , которые можно задать с помощью конечной выборки выступающих точек, называемых вершинами . Например, квадрат может быть однозначно определен по расположению трех из четырех его углов, из которых программное обеспечение может интерполировать соединяющие граничные линии и внутреннее пространство. Поскольку это правильная форма, квадрат также можно определить по расположению одного угла, размеру (ширина = высота) и углу поворота.
Основными геометрическими примитивами являются:
Могут поддерживаться различные более сложные формы:
Во многих наборах векторных данных каждую фигуру можно комбинировать с набором свойств. Наиболее распространенными являются визуальные характеристики, такие как цвет, толщина линии или образец штриха. В системах, в которых формы представляют собой реальные объекты, таких как ГИС и BIM, могут храниться различные атрибуты каждого представленного объекта, такие как имя, возраст, размер и т. д. [3]
В некоторых векторных данных, особенно в ГИС, информация о топологических связях между объектами может быть представлена в модели данных, например, отслеживание связей между сегментами дорог в транспортной сети . [4]
Если набор данных, хранящийся в одном формате векторного файла, преобразуется в другой формат файла, который поддерживает все примитивные объекты, используемые в этом конкретном изображении, тогда преобразование может быть выполнено без потерь.
Векторные устройства, такие как векторный ЭЛТ и перьевой плоттер , напрямую управляют механизмом рисования для создания геометрических фигур. Поскольку устройства векторного отображения могут определять линию, имея дело всего с двумя точками (то есть координатами каждого конца линии), устройство может уменьшить общий объем данных, с которыми ему приходится иметь дело, организовав изображение в виде пар точки. [5]
Векторные графические дисплеи впервые были использованы в 1958 году системой ПВО США SAGE . [ 6 ] Системы векторной графики были сняты с производства в США на маршруте управления воздушным движением в 1999 году . программа Sketchpad в 1963 году. [7]
Последующие системы векторной графики, большинство из которых перебирали динамически изменяемые сохраненные списки инструкций рисования, включают IBM 2250 , Imlac PDS-1 и DEC GT40 . Существовала игровая консоль под названием Vectrex , в которой использовалась векторная графика , а также различные аркадные игры, такие как Asteroids , Space Wars , Tempest и многие кинематографические игры, такие как Rip Off и Tail Gunner, использующие векторные мониторы . [8] Дисплеи объема памяти, такие как Tektronix 4014 , могут отображать векторные изображения, но не могут изменять их без предварительного стирания изображения. Однако они никогда не использовались так широко, как растровые сканирующие дисплеи, используемые на телевидении, и к середине 1980-х годов практически исчезли, за исключением специализированных приложений.
Плоттеры , используемые в техническом черчении, по-прежнему рисуют векторы непосредственно на бумаге, перемещая перо по направлению через двумерное пространство бумаги. Однако, как и в случае с мониторами, они в значительной степени были заменены широкоформатными принтерами , которые печатают растровое изображение (которое можно визуализировать из векторных данных).
Поскольку эта модель полезна в различных областях применения, было создано множество различных программ для рисования, управления и визуализации векторной графики. Хотя все они основаны на одной и той же базовой модели векторных данных, они могут по-разному интерпретировать и структурировать формы, используя совершенно разные форматы файлов.
Векторная графика сегодня обычно встречается в форматах графических файлов SVG , WMF , EPS , PDF , CDR или AI и существенно отличается от более распространенных форматов растровых графических файлов, таких как JPEG , PNG , APNG , GIF , WebP , BMP . и MPEG4 .
Стандартом векторной графики Консорциума Всемирной паутины (W3C) является масштабируемая векторная графика (SVG). Стандарт сложен, и его внедрение происходит относительно медленно, по крайней мере частично, из-за коммерческих интересов. Многие веб-браузеры теперь имеют некоторую поддержку рендеринга данных SVG, но полные реализации стандарта все еще сравнительно редки.
В последние годы SVG стал важным форматом, который полностью не зависит от разрешения устройства рендеринга, обычно принтера или монитора. Файлы SVG по сути представляют собой печатный текст, описывающий как прямые, так и изогнутые пути, а также другие атрибуты. Википедия предпочитает SVG для таких изображений, как простые карты, линейные иллюстрации, гербы и флаги, которые обычно не похожи на фотографии или другие однотонные изображения. [ нужна цитата ] Для рендеринга SVG требуется преобразование в растровый формат с разрешением, соответствующим текущей задаче. SVG также является форматом анимированной графики.
Существует также версия SVG для мобильных телефонов. В частности, специальный формат для мобильных телефонов называется SVGT (версия SVG Tiny). Эти изображения могут подсчитывать ссылки, а также использовать сглаживание. Их также можно отображать в качестве обоев.
Программное обеспечение САПР использует свои собственные форматы векторных данных, обычно собственные форматы , созданные поставщиками программного обеспечения, такие как Autodesk DWG , и общедоступные форматы обмена, такие как DXF . За свою историю для данных ГИС были созданы сотни различных векторных форматов файлов , включая собственные форматы, такие как файловая база геоданных Esri, собственные, но общедоступные форматы, такие как Shapefile и исходный KML , форматы с открытым исходным кодом, такие как GeoJSON , и форматы, созданные такими организациями по стандартизации, как Простые функции и GML от Открытого геопространственного консорциума .
Современные дисплеи и принтеры представляют собой растровые устройства; векторные форматы необходимо преобразовать в растровый формат (растровые изображения – массивы пикселей), прежде чем их можно будет визуализировать (отобразить или распечатать). [10] Размер файла растрового/растрового формата, созданного в результате преобразования, будет зависеть от требуемого разрешения, но размер векторного файла, создающего файл растрового/растрового изображения, всегда останется неизменным. Таким образом, легко преобразовать векторный файл в ряд форматов растровых/растровых файлов , но гораздо сложнее пойти в обратном направлении, особенно если требуется последующее редактирование векторного изображения. Возможно, будет полезно сохранить изображение, созданное из исходного векторного файла, в растровом/растровом формате, поскольку разные системы имеют разные (и несовместимые) векторные форматы, а некоторые могут вообще не поддерживать векторную графику. Однако после преобразования файла из векторного формата он, скорее всего, станет больше и потеряет преимущество масштабируемости без потери разрешения. Также больше нельзя будет редактировать отдельные части изображения как отдельные объекты. Размер файла векторного графического изображения зависит от количества содержащихся в нем графических элементов; это список описаний.
Векторные изображения идеально подходят для печати , поскольку они состоят из серии математических кривых; он будет печатать очень четко даже при изменении размера. [11] Например, можно напечатать векторный логотип на небольшом листе копировальной бумаги, а затем увеличить тот же векторный логотип до размера рекламного щита , сохранив такое же четкое качество. Растровая графика с низким разрешением будет сильно размыта или пикселизирована, если ее увеличить с размера визитной карточки до размера рекламного щита. (Точное разрешение растровой графики, необходимое для получения высококачественных результатов, зависит от расстояния просмотра; например, рекламный щит может выглядеть высококачественным даже при низком разрешении, если расстояние просмотра достаточно велико.) [12]
Если рассматривать типографские символы как изображения, то те же соображения, которые мы сделали для графики, применимы и к составлению письменного текста для печати ( набору текста ). Старые наборы символов хранились в виде растровых изображений. Следовательно, для достижения максимального качества печати их нужно было использовать только с заданным разрешением; эти форматы шрифтов считаются немасштабируемыми. Высококачественная типографика в настоящее время основана на рисунках символов ( шрифтах ), которые обычно хранятся в виде векторной графики и поэтому масштабируются до любого размера. Примерами векторных форматов символов являются шрифты Postscript и шрифты TrueType .
Преимущества этого стиля рисования перед растровой графикой :
Например, рассмотрим круг радиуса r . [14] Основные фрагменты информации , необходимые программе для рисования этого круга:
Векторные форматы не всегда уместны в графической работе, а также имеют множество недостатков. [15] Например, такие устройства, как камеры и сканеры, создают по существу растровую графику с непрерывным тоном , которую нецелесообразно преобразовывать в векторы, поэтому для этого типа работы редактор изображений будет работать с пикселями, а не с рисованием объектов, определенных математические выражения. Комплексные графические инструменты объединяют изображения из векторных и растровых источников и могут предоставлять инструменты редактирования для обоих, поскольку некоторые части изображения могут быть получены из источника камеры, а другие могут быть нарисованы с использованием векторных инструментов.
Некоторые авторы раскритиковали термин «векторная графика» как сбивающий с толку. [16] [17] В частности, векторная графика — это не просто графика, описываемая евклидовыми векторами . [18] Некоторые авторы предложили вместо этого использовать объектно-ориентированную графику . [16] [19] [20] Однако этот термин также может сбивать с толку, поскольку его можно понимать как любой вид графики, реализованный с использованием объектно-ориентированного программирования . [16]
Редакторы векторной графики обычно допускают перемещение, вращение, зеркальное отображение, растяжение, наклон, аффинные преобразования , изменение z-порядка (грубо говоря, что находится перед чем) и объединение примитивов в более сложные объекты. [16] Более сложные преобразования включают в себя операции над множествами над замкнутыми фигурами ( объединение , разность , пересечение и т. д.). [21] В SVG операции композиции основаны на альфа-композиции . [22]
Векторная графика идеально подходит для простых или составных рисунков, которые должны быть независимыми от устройства [23] или не требуют достижения фотореализма . Например, языки описания страниц PostScript и PDF используют модель векторной графики.