Вы здесь

Компьютерная графика в дизайне. Часть II. Векторная графика (Д. Ф. Миронов, 2008)

Часть II

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

2.1. Объектно-ориентированное графическое моделирование

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

2.1.1. Графические объекты и их классы

Большинство программных средств компьютерной графики для работы с векторными изображениями представляют собой интегрированные объектно-ориентированные программные пакеты. Интегрированность программного пакета означает, что он включает в себя несколько программных средств с единым интерфейсом пользователя, в совокупности позволяющих решать множество задач, возникающих при работе с векторной графикой. Входящие в пакет средства позволяют легко обмениваться данными и последовательно выполнять различные операции над ними, поскольку используют одну и ту же информационную модель изображения. Таким образом, возможности программных средств интегрируются в целое, представляющее собой нечто большее, чем простая сумма компонентов. Примеры таких интегрированных пакетов для работы с векторной графикой – CorelDRAW X3 и Adobe Illustrator CS2.

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

Классом графических объектов называется совокупность объектов, обладающих свойством структурной идентичности, одинаковым списком атрибутов и набором методов работы с ними, а также ее формальное описание, состоящее из описания всех атрибутов и методов класса. Так, классом объектов будут, например, прямоугольники. Их структурная идентичность очевидна – у каждого прямоугольника имеются по четыре стороны и по четыре угла. Прямоугольники могут быть разной высоты и ширины, но у каждого из них есть высота и ширина – общий для всех объектов класса список атрибутов (см. разд. 2.1.2). Методы работы также будут общими для всех прямоугольников. Прямоугольник можно создать, удалить, развернуть, растянуть, сжать, перекосить, можно закруглить ему углы. Эти операции представляют собой методы класса прямоугольников (см. разд. 2.1.3).

Примечание

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

На рис. 2.1.1 в качестве примера показаны верхние уровни дерева классов графических объектов CorelDRAW X3.

Рис. 2.1.1. Верхние уровни иерархии объектов графического документа


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

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

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

Примечание

Рассматриваться будут именно классы графических объектов и их методы. Что касается интерфейса пользователя, обеспечивающего доступ к этим методам, – для его изучения следует обращаться к учебникам по соответствующим программным средствам.

2.1.2. Атрибуты класса графических объектов

Класс объектов включает в себя все объекты, как уже существующие, так и те, которые могут быть созданы в будущем. Главное – чтобы эти объекты удовлетворяли описанию класса. Каждый из объектов, входящих в один класс, называется экземпляром класса. У всех экземпляров одного класса по определению список атрибутов и набор методов должны быть одинаковыми. Следовательно, отличаться друг от друга экземпляры одного класса могут только значениями атрибутов.

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

вариативности – хотя бы у одного из объектов класса значение атрибута должно отличаться от значений того же атрибута у остальных объектов класса;

единичности – атрибут должен представлять собой единственное значение одного из стандартных типов данных;

релевантности – атрибут должен описывать графический объект в аспекте, существенном для графического моделирования.

К стандартным типам данных относятся:

• логические значения;

• целые числа;

• действительные числа;

• текстовые значения.

На рис. 2.1.2 представлена панель атрибутов – элемент интерфейса графического редактора, с помощью которого можно узнать текущие значения атрибутов выделенного графического объекта (в данном случае – прямоугольника).

Рис. 2.1.2. Панель атрибутов для класса графических объектов «прямоугольник»


Совокупность текущих значений атрибутов объекта определяет его состояние.

Первоначально атрибуты объекта получают свои значения при создании этого объекта. Некоторые из атрибутов вводит пользователь, остальные принимают значение по умолчанию. Например, при создании прямоугольника интерактивным методом пользователь протаскивает указатель мыши по диагонали создаваемого объекта. При этом он задает значения таких атрибутов, как ширина, высота, горизонтальная и вертикальная координаты центра. Такие атрибуты, как угол разворота, тип и ширина контурной линии и пр., получают значение по умолчанию.

Примечание

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

При дальнейшем рассмотрении атрибуты класса графических объектов разделяют на общие и специфические. К общим относятся атрибуты, имеющиеся у всех или большинства классов графических объектов, например, координаты центра объекта, угол его разворота, характеристики обводки и заливки. Они будут рассматриваться в отдельных разделах, посвященных методам, с помощью которых задаются значения этих атрибутов. К специфическим относятся атрибуты, характерные именно для данного класса графических объектов, например, степень закругления углов прямоугольников (см. разд. 2.2.2) или интерлиньяж текстов (см. разд. 2.5.3 и 2.5.6). Такие атрибуты будут рассматриваться в разделах, посвященных классам объектов.

2.1.3. Методы класса графических объектов

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

• непосредственным изменением значения атрибута, при котором его новое значение вводится пользователем;

• выполнением интерактивной операции (преобразования) над графическим объектом;

• программно, когда старое значение атрибута заменяется новым (чаще всего – автоматически вычисленным) в процессе выполнения программного модуля.

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

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

При дальнейшем рассмотрении методы класса графических объектов (как и атрибуты) разделяются на общие и специфические. К общим относятся методы, применимые ко всем или большинству классов графических объектов, например, размещение объекта, его разворот, настройка параметров обводки и заливки. Они будут рассматриваться в отдельных разделах. К специфическим относятся методы, характерные именно для данного класса графических объектов, например, закругление углов для прямоугольников (см. разд. 2.2.2) или форматирование абзацев для текстов (см. разд. 2.5.2 и 2.5.5). Они будут рассматриваться в разделах, посвященных классам объектов.

2.1.4. Форматы графических файлов векторных графических документов

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

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

Формат графического редактора CorelDRAW (CDR)

Основное назначение интегрированного пакета программ CorelDRAW – работа с векторными графическими документами, хотя в их составе могут присутствовать и пиксельные изображения (в виде импортированных объектов). Изображение строится как совокупность графических примитивов (прямоугольников, кривых, текстов, эллипсов и дуг), а также созданных на их основе составных объектов. Изображение сильно структурировано, графический документ может включать несколько страниц, каждая из которых – произвольное число слоев. Формат файлов с расширением cdr достаточно компактен, многие редакционно-издательские программы и графические редакторы позволяют импортировать изображения, представленные в этом формате.

В качестве цветовых моделей приняты RGB, CMYK, Lab, HSB, HLS и системы цветосовмещения.

Примечание

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

Формат графического редактора Adobe Illustrator (AI)

Назначение векторного графического редактора Adobe Illustrator, входящего в состав разработанного фирмой Adobe Systems интегрированного пакета Creative Suite, – работа со сложными векторными изображениями. Формат графического файла AI разрабатывался как основной формат векторных графических документов этого пакета отдельно для платформ Macintosh и Windows. Первоначально предназначенный только для работы с векторной графикой, в современных версиях этот формат допускает хранение пиксельных изображений как импортированных объектов. Может считываться самым известным редактором пиксельной графики Adobe Photoshop и адекватно импортируется в систему трехмерного моделирования 3D Studio Max.

В качестве цветовых моделей приняты RGB, CMYK, Lab, HSB, HLS и системы цветосовмещения.

Форматы системы AutoCAD

Основное назначение системы AutoCAD – автоматизация проектирования и предоставление пользователям и разработчикам инструментальной платформы для построения специализированных систем автоматизации проектирования и технологической подготовки производства. В ее составе имеется мощная подсистема векторного графического моделирования, обеспечивающая подготовку и выпуск конструкторской графической документации. Для этой подсистемы были разработаны форматы графических файлов DWG и DXF. Подсистема графического моделирования, совершенствовавшаяся на протяжении десятилетий, оказалась настолько удобной и мощной, что сегодня часто служит для решения задач компьютерной графики, не связанных с автоматизацией проектирования.

Формат файлов DWG (Drawing Database) предназначен для хранения всей векторной информационной модели изображения. Это один из основных форматов системы AutoCAD. Формат DXF (Drawing Interchange Format) представляет собой средство обмена графическими моделями. Графический файл в этом формате содержит в себе описания всех графических объектов изображения в символьной форме. Этот формат стал де-факто стандартом для обмена чертежами в системах автоматизации проектирования.

Форматы AutoCAD включают в себя сложную иерархию графических объектов, многостраничные документы многослойной структуры. Но, поскольку их основное назначение связано с автоматизацией проектирования, для задания цвета в них используется только индексированная цветовая модель.

Формат PostScript

Язык PostScript был разработан фирмой Aldus для описания расположения графических материалов и текстов на печатных полосах. Впоследствии он развивался и стал основой многих пакетов графического моделирования и редакционно-издательских систем. Довольно много моделей современных печатающих устройств обеспечивают аппаратную интерпретацию графических файлов на языке PostScript (расширение файла ps). Современная спецификация языка PostScript Level 3 соответствует сложной и совершенной модели многостраничного векторного документа с широкой номенклатурой простых и составных графических объектов.

Существует модификация формата PostScript, предназначенная специально для вывода на печать. В графических файлах этого формата (расширение prn) номенклатура графических объектов сужена, но их можно печатать на менее сложных принтерах без помощи специальной графической программы.

Формат Encapsulated PostScript (EPS)

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

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

Формат Computer Graphics Metafile

В отличие от большинства рассмотренных в этом разделе форматов векторной графики, формат CGM (Computer Graphics Metafile) был разработан не отдельной фирмой, а международным комитетом в рамках работы над стандартом компьютерной графики. Он представляет собой формат метафайла с открытым описанием, независимый от платформы. Спецификация этого формата позволяет представлять в нем как двумерные векторные, так и пиксельные изображения, но, как правило, эти две информационные модели хранятся в различных файлах. Основное назначение формата – представление графических изображений для передачи между различными программными средствами. Ориентирован на цветовую модель RGB. Расширение файла cgm.

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

Формат Scalable Vector Graphics

Формат SVG (Scalable Vector Graphics) был разработан Консорциумом World Wide Web (W3C) для векторных графических изображений на страницах WWW. Это открытый стандартный формат представления векторных графических объектов средствами языка гипертекстовой разметки XML. Расширение файла svg.

Графические файлы в формате SVG – это совокупность тегов XML, хранящихся и передающихся по сети в виде текста. Векторные изображения загружаются значительно быстрее пиксельных. Стандарт предусматривает возможность дополнительного сжатия графического файла SVG, такие файлы имеют расширение svgz.

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

Формат Windows Metafile

Этот формат файлов с расширением wmf разработан фирмой Microsoft и предназначен для хранения информационных моделей как векторного, так и пиксельного изображений. Первоначально создавался как внутренний формат представления графических изображений в операционной системе Microsoft Windows 3. В этом формате принята цветовая модель RGB с глубиной цвета 24 бита на элемент изображения. Данные, представленные в этом формате, могут обрабатываться большинством программ, работающих на платформе Windows.

Список новых терминов

• Интегрированность

• Объектная ориентированность

• Класс графических объектов

• Экземпляр класса

• Атрибут (свойство) класса

• Вариативность атрибута класса

• Единичность атрибута класса

• Релевантность атрибута класса

Контрольные вопросы

1. В чем состоят преимущества интегрированных программных пакетов векторной графики?

2. В чем выражается объектная ориентированность современных программных средств векторной графики?

3. Что объединяет графические объекты в один класс?

4. Что включает в себя описание класса графических объектов?

5. В чем состоят сходство и различие экземпляров графических объектов одного класса?

6. Какие типы данных относятся к стандартным?

7. Каким образом формируются исходные значения атрибутов графического объекта при его создании?

8. Как можно изменить состояние графического объекта?

9. Что представляют собой методы класса графических объектов?

10. Для какой цели в состав пакетов векторной графики вводят объектно-ориентированный алгоритмический язык?

2.2. Параметрические примитивы

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

2.2.1. Параметризация графического объекта

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

• координаты точки привязки;

• угол разворота вокруг точки привязки;

• коэффициенты масштабного преобразования.

Точкой привязки называется точка начала локальных координат графического объекта. Местоположение этой точки, представленное парой чисел в системе координат страницы графического документа, определяет, где на странице будет располагаться графический объект. На рис. 2.2.1 показано соотношение локальных координат и координат страницы.

Рис. 2.2.1. Система координат страницы графического документа и локальных координат графического объекта


Примечание

Координаты точки привязки принято считать координатами графического объекта. Они выражаются в системе координат страницы графического документа.

Примечание

При создании графического объекта начало его локальных координат помещается на пересечении диагоналей габаритного прямоугольника.

Углом разворота называется угол, образованный одноименными осями координат локальной системы графического объекта и системы координат страницы. Чаще всего, разворот графического объекта выполняется вокруг точки его привязки, но возможно выполнение этой операции и относительно произвольно выбранной точки (рис. 2.2.2).

Рис. 2.2.2. Разворот графического объекта вокруг точек привязки и начала координат страницы


Примечание

На рис. 2.2.2 пунктирной линией показаны исходные положения графических объектов до начала их разворота на 15° каждого относительно различных точек. Обратите внимание, что углы, образованные одноименными осями систем координат объекта и страницы, и в том, и в другом случае равны 15°.

Масштабным преобразованием называется изменение габаритных размеров графического объекта, записанных в его дескрипторе, в процессе рендеринга. Степень увеличения или уменьшения размеров отображения графического элемента зависит от коэффициента масштабного преобразования, который, как правило, задают отдельно по каждой из осей локальных координат графического объекта. Пример использования масштабного преобразования с различными значениями коэффициентов представлен на рис. 2.2.3.

Конец ознакомительного фрагмента.