Компьютерная графика в дизайне - Дмитрий Миронов
Шрифт:
Интервал:
Закладка:
Большинство программных средств компьютерной графики для работы с векторными изображениями представляют собой интегрированные объектно-ориентированные программные пакеты. Интегрированность программного пакета означает, что он включает в себя несколько программных средств с единым интерфейсом пользователя, в совокупности позволяющих решать множество задач, возникающих при работе с векторной графикой. Входящие в пакет средства позволяют легко обмениваться данными и последовательно выполнять различные операции над ними, поскольку используют одну и ту же информационную модель изображения. Таким образом, возможности программных средств интегрируются в целое, представляющее собой нечто большее, чем простая сумма компонентов. Примеры таких интегрированных пакетов для работы с векторной графикой – 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. Методы класса графических объектов
Чтобы изменить состояние объекта, необходимо поменять значение хотя бы одного из его атрибутов. Это обеспечивают методы того класса, экземпляром которого является данный объект. Векторные графические редакторы позволяют менять значения атрибутов графических объектов в процессе редактирования изображения. Это можно сделать одним из трех способов:
• непосредственным изменением значения атрибута, при котором его новое значение вводится пользователем;
• выполнением интерактивной операции (преобразования) над графическим объектом;
• программно, когда старое значение атрибута заменяется новым (чаще всего – автоматически вычисленным) в процессе выполнения программного модуля.