Аннотация: Перед началом работы с CorelDRAW вам надо получить общие представления о возможностях CorelDRAW, средствах для их реализации и основных приемах работы с редактором. В этой лекции вы познакомитесь с векторной графикой, овладеете навыками работы с популярным векторным графическим редактором CorelDRAW и научитесь создавать с его помощью несложные векторные изображения.
Графика растровая и векторная. Плюсы и минусы векторной графики
Форматов для хранения изображений на компьютере два: растровый и векторный. В векторном формате изображение описывается как совокупность отдельных объектов, заданных математически (формулами), а в растровом — по точкам (как мозаика). Например, чтобы описать отрезок прямой в векторном формате необходимо задать координаты начала и конца прямой , ее цвет и толщину. Для описания той же прямой в растровом формате задаются координаты каждой ее точки и цвет точек.
Для эффективного применения векторной графики в творческой работе необходимо представлять себе ее достоинства и недостатки.
Adobe Illustrator за 1 час! (уроки для начинающих)
Векторный формат более компактный, но он не пригоден для хранения реалистичных изображений, например фотографий. В этом формате задавать их математически сложно и громоздко, а поэтому — нерационально. А вот рисунки и чертежи удобно и целесообразно создавать и хранить именно в векторном виде.
Достоинствами векторных изображений является следующее:
- увеличение масштаба происходит без потери качества изображений;
- небольшой размер файла по сравнению с растровыми изображениями;
- прекрасное качество вывода векторных изображений на печать;
- возможность редактирования каждого элемента изображения в отдельности;
- векторным программам свойственна высокая точность рисования (до сотой доли микрона);
- векторная графика экономна в плане объемов дискового пространства, необходимого для хранения изображений. Это связано с тем, что сохраняется не само изображение, а только некоторые основные данные (математическая формула объекта), используя которые программа всякий раз воссоздает изображение заново.
Недостатки векторного формата:
- сложность преобразования (трассировки) из растрового формата в векторный;
- векторная графика ограничена в чисто живописных средствах и не позволяет получать фотореалистичные изображения с тем же качеством, что и растровая. Причина в том, что здесь, в отличие от растровой графики, минимальной областью, закрашиваемой однородным цветом, является не один пиксел, а один объект. А размеры объекта по определению больше;
- невозможно применение обширной библиотеки эффектов (фильтров), используемых при работе с растровыми изображениями;
- сложность для понимания окружающего нас мира в виде векторов начинающими пользователями. Попробуйте описать, например, утро в осеннем лесу математическими формулами;
- аппаратные средства для работы с векторными рисунками (каттеры, плоттеры) более сложны и дороги, чем «железо» в растровой графике (мониторы, сканеры).
Замечание
Как понять вектор и начать рисовать?
Строго говоря, ни один современный профессиональный графический пакет не является чисто векторным или чисто растровым, а совмещает в себе элементы как того, так и другого вида графики.
Что же такое «вектор»?
Для понимания термина » вектор » стоит вспомнить школьный курс физики. Там, было понятия понятие точки и приложенной к ней силы. Точка — это то место , куда сила прикладывается. А приложенная в точке сила характеризуется ее величиной и направлением.
В компьютерной графике две связанные между собой точки, к каждой из которых приложена какая-либо сила в каком-либо направлении, могут сформировать некую линию, которая по своей форме будет соответствовать исходным параметрам каждой из этих точек. Сказанное нами графически можно изобразить так, как показано на рис. 2.1.
Рис. 2.1. Две силы разной величины и направления приложены в двух разных точках
Объектов и явлений, которые можно описать с помощью векторных величин , чрезвычайно много и не только в курсе физики, но и в нашей повседневной жизни. А что касайтся цифровой графики, то здесь любую сложную кривую можно разбить на маленькие отрезки, форму которых можно определить всего парой точек и дугой между ними.
Изображение, созданное в векторных программах, основывается на математических формулах, а не на координатах пикселов. Поэтому векторные файлы содержат наборы инструкций для построения геометрических объектов — линий, эллипсов, прямоугольников, многоугольников и дуг. В соответствии с этим основу векторных изображений составляют разнообразные линии или кривые, называемые векторами или, по-другому, контурами. Каждый контур представляет собой независимый объект , который можно редактировать: перемещать, масштабировать, изменять. В соответствии с этим векторную графику часто называют также объектно-ориентированной графикой.
А вот таким образом выглядят векторы в рабочем пространстве программы CorelDRAW ( рис. 2.2).
Рис. 2.2. Часть векторного рисунка в программе CorelDRAW
На этом фрагменте изображения легко увидеть отдельные точки (которые на языке этой программы называются «узлами») и линии, образованные векторами. Обратите внимание: на панели инструментов активизирован инструмент программы, предназначенный для работы с узлами и векторами. Называется он Shape Tool (Форма) 1 Здесь мы еще раз отметим, почему мы выбрали для изучения именно английскую, а не русскоязычную версию CorelDRAW. В оригинальной версии все инструменты названы однозначно. В локализованной версии один и тот же инструмент называется по-разному. Так, инструмент Shape Tool переводится как Фигуры, Произвольная фигура, Редактирование объекта и так далее. .
Итак, как видим, в векторном редакторе любой контур состоит из отдельных узлов и линий между ними. Умение работать с узлами является залогом успешного рисования объектов в CorelDRAW.
Узлы (Опорные точки)
Наряду с линией, другим основным элементом векторной графики является узел (опорная точка). Линии и узлы используются для построения контуров (векторов), которые могут быть представлены в виде прямой , кривой или формы. Каждый контур имеет несколько узлов. В векторных редакторах форму контура изменяют путем манипуляции узлами. Это можно сделать одним из следующих способов:
- перемещением узлов;
- изменением свойств узлов (атрибутов связанных с ними касательных линий и управляющих точек);
- добавлением или удалением узлов.
Таким образом, в основе всех процедур, связанных с редактированием (отчасти и созданием) любого типа контуров, лежит работа с узлами.
Касательные линии и управляющие точки на кривых Безье
Математик Пьер Безье (Pierre Bezier) открыл, что произвольную кривую можно задать с помощью двух векторов, находящихся в начале и конце кривой. Это положение легло в основу описания кривых Безье в CorelDRAW. Из множества кривых Безье можно составить любую кривую.
Кроме положения начальной и конечной точки (то есть узлов кривой), внешний вид кривой определяется кривизной, то есть ее изогнутостью между двумя узлами. Кривизна определяется двумя параметрами кривой в каждом узле, которые графически представлены с помощью отрезков, выходящих из узлов. Эти отрезки называются манипуляторами кривизны.
Степень кривизны определяется длиной манипулятора кривизны. Если манипуляторы кривизны с обеих сторон сегмента имеют нулевую длину, то сегмент будет прямым. Увеличение длины манипулятора кривизны превратит сегмент в кривую.
Итак, координаты узлов, наклон и длина манипуляторов кривизны определяют внешний вид кривой Безье. При выделении узловой точки криволинейного сегмента у нее появляются одна или две управляющие точки, соединенные с узловой точкой касательными линиями. Управляющие точки изображаются наконечниками стрелок. Расположение касательных линий и управляющих точек определяет длину и форму (кривизну) криволинейного сегмента, а их перемещение приводит к изменению формы контура ( рис. 2.3).
Рис. 2.3. Термины, связанные с редактированием узлов на кривых Безье
Замечание
Наряду с термином «касательные» используются и другие термины: «рычаги управления» или «усы». Форма и цвет управляющих точек также зависят от вида используемого вами графического редактора. В CorelDRAW узловые и управляющие точки можно перемещать с помощью инструмента Shape (Форма).
Типы узловых точек
Вид касательных линий и соответственно методы управления кривизной сегмента в точке привязки определяются типом узловой точки. Различают три типа узловых точек:
- гладкий узел (smooth node) — рис. 2.4;
- симметричный узел ( symmetrical node) — рис. 2.5;
- острый узел (cusp node).
Рис. 2.4. Гладкий узел (smooth node)
У гладкой узловой точки касательные линии лежат на одной прямой , но имеют разную длину. Это говорит о том, что кривизна криволинейных участков, прилегающих к этой опорной точке, различна с разных ее сторон.
Рис. 2.5. Симметричный узел (symmetrical node)
У симметричного узла оба отрезка касательных по обе стороны точки привязки имеют одинаковую длину и лежат на одной прямой , которая показывает направление касательной к контуру в данной узловой точке. Это означает, что кривизна сегментов с обеих сторон точки привязки одинакова. Этот тип узлов является частным случаем гладких узлов.
Рис. 2.6. Острый узел (cusp node)
У острого узла касательные линии с разных сторон этой точки не лежат на одной прямой . Поэтому два криволинейных сегмента, прилегающих к опорной точке, имеют различную кривизну с разных сторон узловой точки и контур в этой точке образует резкий излом. В частности, один из отрезков касательных может быть равен нулю. В этом случае форма сегмента кривой будет регулироваться только одним отрезком касательной.
Источник: intuit.ru
Обзор программных продуктов для векторизации и гибридного редактирования
Преимущества векторных моделей неоспоримы: послойное хранение информации; подвязка семантики и создание системы гиперссылок; моделирование и анализ; трехмерное моделирование; быстрое и удобное редактирование и прочие свойства математической модели.
Наиболее производительный способ получения векторной модели из растра — использование специальных программ-векторизаторов. «Русская Промышленная Компания» предлагает несколько программ векторизации: CAD Overlay (Autodesk, США), GTXRaster CAD и GTXImage CAD (GTX, США), Easy Trace (Easy Trace Group, Россия), MapEDIT (Резидент, Россия). В данной статье мы приведем основные характеристики этих программ, а затем подробнее рассмотрим каждую из них.
Качество будущей векторной модели закладывается на этапе сканирования: чем лучше отсканирован материал, тем проще будет с ним работать и тем быстрее и качественнее будет выполнена векторизация. Хорошо обрабатываются светлые растры с разрешением 200-400 dpi. Сканирование чертежей и планшетов можно выполнять на сканере любого размера, поскольку программы позволяют «сшить» растры. Векторизаторы работают не только с монохромным, но и с цветным изображением и фотоснимками.
Общий функционал программ векторизации: загрузка растра в графических форматах, настройка системы координат, трансформация, обрезка и разворот растра. Причем выравнивание в пределах 10° может быть выполнено автоматически. Далее растровое изображение можно масштабировать, перемещать, копировать, отображать, сшивать отдельные растровые массивы, сохранять, выводить на внешние устройства.
Растр можно очистить от мелких частиц — «грязи», заполнить небольшие разрывы в растровом изображении, сгладить «зазубрины», а также частично удалить растр. Растровое редактирование — это отрисовка растровых примитивов и операции с растровыми объектами (копирование, перемещение, разворот, удаление и др.). Растровую, а в дальнейшем и векторную модель можно отмасштабировать в соответствии с имеющимися на чертеже размерами. Выполняется также обратное преобразование — векторной графики в растровую.
Программа Easy Trace создана для работы с растровым картографическим изображением. Векторизация выполняется в полуавтоматическом режиме. Трассировщик автоматически распознает и векторизует выбранные контуры (горизонтали, пунктирные или точечные линии), площадные и точечные объекты. Выполняется автоматическая проверка топологии (поиск ошибок — незамыканий, перекрытий и т.д.), возможны создание классификаторов и подвязка семантической информации. Программа полностью русифицирована.
Обработка цветного растра и цветоделение выполняются в программе Rainbow, которая изначально была создана как модуль Easy Trace, а в настоящее время может использоваться локально для подготовки цветных растров к последующей векторизации в других пакетах.
Программа MapEDIT — предназначена для создания и редактирования цифровых векторных карт по растровым изображениям. В MapEDIT PRO добавлена возможность фотограмметрической обработки снимков.
CAD Overlay — гибридный редактор, расширяющий возможности AutoCAD, применим как для чертежей, так и для планов и карт. Имеет удобный инструмент трассировки CAD’овских примитивов (линии, полилинии, дуги, окружности), гладких контуров и т.д. Позволяет выполнять векторизацию монохромных, цветных и серых изображений (снимков). Поддерживает трехмерное моделирование.
Программное обеспечение GTX — наиболее полнофункциональное из всего ряда векторизаторов. Серия GTXRaster CAD работает на платформе AutoCAD, GTXImage CAD — локализированные программы. Оба продукта абсолютно идентичны. Отличительные особенности векторизаторов GTX:
- автоматическая и полуавтоматическая векторизация;
- распознавание растрового текста (с настройкой под пользователя, в том числе на кириллицу и рукописный текст);
- расширенные возможности интеллектуального распознавания растровых объектов (линий, окружностей, дуг), их сегментов, текста, а также интеллектуальной привязки к растру (пересечениям, концам линий, центрам фигур);
- удобные средства растрового и векторного редактирования: обрезка и доведение линии до пересечения с объектом; автоматический доворот линий до горизонтали/вертикали; приведение окружностей к единому центру или радиусу; присвоение отметок в полуавтоматическом режиме.
По результатам векторизации может быть построена трехмерная модель.
В заключение хочется отметить, что, хотя пакетная векторизация и требует редакторской работы, по производительности она имеет огромное преимущество перед ручной оцифровкой и созданием модели заново. Векторизацию можно выполнять постепенно по мере необходимости и возможности; при этом гибридная (растрово-векторная) модель уже начнет работать на вас. Главное, что теперь ваш архив может храниться в электронном виде, он удобно структурирован, надежно защищен, компактен, а материалы понравятся любому заказчику.
«САПР и графика» 12’2001
Источник: sapr.ru
Векторы в C++: для начинающих
Всем привет! До этого дня мы использовали чистые массивы. Чистые — это значит простые массивы, не имеющие у себя в багаже различных функций. В этом уроке мы пройдем нечистые массивы — векторы.
Быстрый переход по статье:
- Вектор векторов (массив векторов)
- Функции векторов
Что такое вектор (vector)
Вектор — это структура данных, которая уже является моделью динамического массива.
Давайте вспомним о том, что для создания динамического массива (вручную) нам нужно пользоваться конструктором new и вдобавок указателями. Но в случае с векторами всего этого делать не нужно.
Вообще, по стандарту пользоваться динамическим массивом через конструктор new — не есть правильно. Так как в компьютере могут происходить различные утечки памяти.
Как создать вектор (vector) в C++
Сначала для создания вектора нам понадобится подключить библиотеку — , в ней хранится шаблон вектора.
Кстати, сейчас и в будущем мы будем использовать именно шаблон вектора. Например, очередь или стек, не созданные с помощью массива или вектора, тоже являются шаблонными.
Далее, чтобы объявить вектор, нужно пользоваться конструкцией ниже:
- Вначале пишем слово vector .
- Далее в угольных скобках указываем тип, которым будем заполнять ячейки.
- И в самом конце указываем имя вектора.
vector < string >ivector ;
В примере выше мы создали вектор строк.
Кстати, заполнить вектор можно еще при инициализации (другие способы мы пройдем позже — в методах вектора). Делается это также просто, как и в массивах. Вот так:
vector < int >ivector = < < элемент [ 0 ] >, < [ 1 ] >, < [ 2 ] >> ;
После имени вектора ставим знак равенства и скобки, в которых через пробел указываем значение элементов.
Такой способ инициализации можно использовать только в C++!
Так, чтобы заполнить вектор строками, нам нужно использовать кавычки — «строка» .