Векторная графика
Ве́кторная гра́фика (другое название — геометрическое моделирование) — это использование геометрических примитивов, таких как точки, линии, сплайны и полигоны, для представления изображений в компьютерной графике. Термин используется в противоположность к растровой графике, которая представляет изображения как матрицу пикселей (точек).
Изначально человеческий глаз воспринимает изображение подобно растровому образу. Картинка проецируется на сетчатку, состоящую из отдельных, реагирующих на свет клеток. Далее система глаз-мозг распознаёт в изображении отдельные объекты, геометрические фигуры, которые уже легче обрабатывать и запоминать.
Содержание |
Обзор
Все современные компьютерные видеодисплеи способны отображать информацию в растровом формате. Для отображения векторного формата на растровом используются преобразователи, програмные или аппаратные, встроеные в видео-карту.
Кроме этого существует узкий класс устройств, ориетированых исключительно на отображение векторых данных. К ним относятся графопостроители а также некоторые типы лазерных проекторов.
Термин векторная графика используется в основном в контексте двухмерной компьютерной графики.
Способ хранения изображения
Рассмотрим, к примеру, окружность радиуса r. Спискок информации, необходимой для полного описания окружности, таков:
- радиус r;
- координаты центра окружности;
- цвет и толщина контура (возможно прозрачный);
- цвет и толщина заполнения (возможно прозрачный).
Преимущества этого способа описания графики над растровой графикой:
- Минимальное количество информации передаётся намного меньшему размеру файла (размер не зависит от величины объекта).
- Соответственно, можно бесконечно увеличить, например, дугу окружности, и она останется гладкой. С другой стороны, полигон, представляющий кривую, покажет, что она на самом деле не кривая.
- При увеличении или уменьшении объектов толщина линий может быть постоянной.
- Параметры объектов хранятся и могут быть изменены. Это означает, что перемещение, масштабирование, вращение, заполнение и т.д. не ухудшат качества рисунка. Более того, обычно указывают размеры в аппаратно-независимых единицах (англ. device-independent unit), которые ведут к наилучшей возможной растеризации на растровых устройствах.
К недостаткам стоит отнести, что не каждый объект может быть легко изображен в векторном виде. Кроме того, количество памяти и времени на отображение зависит от числа объектов и их сложности.
Типичные примитивные объекты
- Линии и ломаные линии.
- Многоугольники.
- Окружности и эллипсы.
- Кривые Безье.
- Безигоны.
- Текст (в компьютерных шрифтах, таких как TrueType, каждая буква создаётся из кривых Безье).
Этот список неполон. Есть разные типы кривых (Catmull-Rom сплайны, NURBS и т.д.), которые используются в различных приложениях.
Также возможно рассматривать растровое изображение как примитивный объект. В соответствии с концептуальной точки зрения, он ведёт себя как прямоугольник.
Векторные операции
Векторные графические редакторы, типично, позволяют вращать, перемещать, отражать, растягивать, скашивать, выполнять основные Аффиные преобразования над объектами, изменять z-order и комбинировать примитивы в более сложные объекты.
Более изощрённые преобразования включают булевые операции на замкнутых фигурах (объединение (en:Union (set_theory)), комплемент (en:Complement (sets)), пересечение (en:Intersection (set theory)) и т.д.
Векторная графика идеальна для простых или составных рисунков, которые должны быть аппаратно-независимыми или не нуждаются в фото-реализме. К примеру, PostScript и PDF page description language Шаблон:? используют модель векторной графики.
См. также
Ссылки
- Проект, раскрывающий возможности векторной графики для дизайнеров и иллюстраторов.
- Framework открытой векторной графики
- Открытая библиотека векторной графики
- OpenVG — API для аппаратного ускорения двухмерной векторной и растровой графики.