Координатная и растровая графика
МАШИННАЯ ГРАФИКА
Машинная графика - это совокупность методов и средств для преобразования данных в графическую форму представления с помощью ЭВМ.
Машинная графика широко применяется в системах автоматизированного проектирования различных изделий.
Машинная графика позволяет дизайнеру формировать геометрические объекты и наблюдать на экране их образы в различных ракурсах и на всех этапах творческого процесса. С помощью ее средств автоматически изготавливаются объемные модели, сложные формы и штампы, минуя трудоемкие шаблонные работы. Обувь и одежда могут конструироваться также средствами машинной графики, включенной в систему САПР.
Информация, представленная в визуальной форме, может быть обработана человеческим аппаратом восприятия наиболее естественным путем. Людям очень трудно иметь дело с моделями явлений реального мира или абстрактных понятий без их визуального представления. В этом причина того, почему машинная графика является средством построения интерфейса между человеком и ЭВМ.
В зависимости от направления, в котором преобразуются и передаются данные, способа их визуального представления и типа объектов, которыми манипулирует графическая система, различают три области применения машинной графики:
- синтез;
- анализ;
- обработка изображения.
При синтезе изображений образы создаются на основе описаний, формируемых программами и данными в ЭВМ. Данные могут поступать от выбранного пользователем источника первичного ввода, быть результатом вычислений или следствием команд и действий оператора графической рабочей станции. Визуальное представление синтезированных элементарных объектов: линий, элементов растра (пикселей), текстовых строк или закрашиваемых многоугольников (областей) - отображается на носитель изображения устройства графического вывода. Допускается разбиение картины на отдельные участки (сегменты), при этом изображения и их части могут подвергаться преобразованиям.
При анализе изображения элементарные объекты и их совокупности должны быть вычленены из картины, представленной в неконструктивной форме. Обычно анализируемые изображения передаются графической системе посредством оцифровки (сканирования), фотографического или телевизионного представления картины.
Обработка изображений предназначена для изменения визуального представления картины с целью улучшения ее восприятия человеком. При этом используются методы фильтрации, усиления контрастности или подавления искажений.
Применение машинной графики, при котором изображения создаются исключительно как результат функций вывода, без вмешательств оператора, называется пассивным графическим выводом. Прикладной программист проверяет правильность работы своей графической программы, изучая созданные ею картины. Если результат его не удовлетворяет, то он вносит изменения в программу. Прямой противоположностью пассивному выводу является интерактивная машинная графика.
Координатная и растровая графика
В зависимости от типа используемого устройства визуализации способы графического вывода разделяются на координатную (линейную) и растровую графику.
Координатная графика - область машинной графики, в которой изображение генерируется с помощью команд визуализации и координатных данных.
Обычно базовыми элементами линейной графики служат отрезки прямых (векторы) или их последовательности. Примерами графических устройств, обеспечивающих такой способ вывода, являются перьевые графопостроители и векторные дисплеи. Характерным отличием этих устройств служит наличие пишущего органа (пера, электронного луча), который может быть установлен в произвольную позицию на поверхности индикации. Перемещая пишущий орган с включенным режимом «рисование», можно получать видимые или невидимые отрезки. Векторные устройства с регенерацией циклически перерисовывают (обновляют) все векторы, составляющие изображение, создавая тем самым у наблюдателя эффект стабильности картины.
Растровая графика - область машинной графики, в которой изображение генерируется из массива пикселей, упорядоченных по строкам и столбцам. Растровые изображения состоят из прямоугольных точек, называемых растром. Такое представление изображений существует не только в цифровом виде. При пристальном взгляде на монитор или экран телевизора можно разглядеть маленькие точки люминофора - пиксели, из которых состоит экранное изображение. Рассматривая любую иллюстрацию в книгах и журналах, также можно заметить, что изображение построено из точек. Однако точки растра достаточно малы для того, чтобы глаз человека воспринимал совокупность разноцветных точек как единую картину, а не каждую из них в отдельности.
Пиксель - наименьший элемент носителя изображения, которому можно индивидуально назначить цвет или степень яркости.
на основе векторов на основе пикселей
Рисунок 2.1 - Способы построения литер из векторов и пикселей
Растровые изображения обеспечивают максимальную реалистичность, поскольку в цифровую форму переводится каждый мельчайший фрагмент оригинала. Такие изображения сохраняются в файлах гораздо большего объема, чем векторные, поскольку в них запоминается информация о каждом пикселе изображения. Таким образом, качество растровых изображений зависит от их размера. Как следствие того, что они состоят из пикселей фиксированного размера, свободное масштабирование без потери качества к ним неприменимо. Эта особенность, а также сама структура растровых изображений несколько затрудняет их редактирование и обработку.
Векторные изображения состоят из контуров. Для описания контуров в программах редактирования векторной графики применяют так называемые кривые Безье – параметрические кривые третьего порядка. Контуры состоят из одного или нескольких смежных сегментов, ограниченных узлами.
Сегменты могут иметь прямолинейную или криволинейную форму. Форма сегмента определяется типом ограничивающих его узлов, которые могут быть гладкими или угловыми. В гладком узле контур имеет плавный перегиб, в то время, как в угловом – излом. Если сегмент хотя бы с одной стороны будет ограничен гладким узлом, он будет криволинейным. С другой стороны, чтобы сегмент был прямолинейным, он должен быть ограничен с обеих сторон только угловыми узлами.
Для удобного управления кривизной сегментов узлы имеют управляющие линии. Изменяя их расположение и длину, можно придать сегментам произвольный изгиб, а значит всему изображению – желаемую форму.
Замкнутые контуры (например, многоугольные, эллиптические и т.п.) могут иметь заливку, т.е. их внутреннее пространство может быть заполнено произвольным цветом. Программы машинной графики способны поддерживать не только сплошные, но и более сложные типы заливок – градиентные (плавный переход от одного цвета к другому) или узорные (заливка повторяющимся рисунком). Некоторые программы позволяют создавать текстурные заливки, т.е. заливки редактируемыми рисунками, похожими на какие-либо материалы.
Любые контуры могут иметь обводку. Контур – понятие математическое, и толщины он не имеет. Чтобы сделать контур видимым, ему придают обводку – линию заданной толщины и цвета, проведенную строго по контуру. По умолчанию всем новопостроенным линиям задается одинаковая толщина, однако по желанию обводку можно изменить – создать пунктирную, градиентную или художественную.
Контуры, заливки и обводки – основа построения векторного изображения. Все компоненты векторного изображения описываются математически, а значит – абсолютно точно. Чем большее количество контуров содержится в изображении, тем оно выглядит более живым и детализированным. Однако с другой стороны, чем больше контуров, тем больше вычислений необходимо произвести для построения изображения, т.к. после каждого внесенного изменения все изображение полностью пересчитывается.
Векторные изображения, как правило, строятся вручную, однако в некоторых случаях они могут быть также получены из растровых с помощью программ трассировки.
Векторные изображения не в состоянии обеспечить близкую к оригиналу реалистичность, но они компактны, и, поскольку состоят из «реализованных математических моделей», то допускают свободное масштабирование совершенно без потери качества. Преимуществом векторных изображений является также их легкое редактирование.
Примитив вывода - базовый графический элемент, который может использоваться для построения изображения. К примитивам вывода относятся:
- ломаная;
- полимаркер;
- текст;
- полигональная область;
- матрица ячеек;
- обобщенный примитив вывода.
Изображение - совокупность графических примитивов и (или) сегментов, которая может быть одновременно выведена на носитель изображения.
Атрибут - характеристика примитива вывода или сегмента, например выделение, межлитерный просвет.
Векторный примитив – ломаная (рисунок 2.2). Графическая система генерирует набор отрезков прямых, соединяющих заданную последовательность точек.
Рисунок 2.2 - Векторный примитив – ломаная
Точечный примитив – полимаркер (рисунок 2.3). Графическая система генерирует набор символов некоторого типа, которые центрируются в указанных точках. Эти символы называются маркерами и отмечают последовательность позиций знаками требуемой формы.
Рисунок 2.3 - Точечный примитив – полимаркер
Текстовый примитив - текст. Графическая система генерирует строку литер с началом в указанной позиции.
Растровые примитивы - полигональная область (рисунок 2.4). Графическая система генерирует многоугольник, область, которую он ограничивает, может быть пустой, иметь фоновую окраску, быть покрытым узором по шаблону или заштрихованным.
Рисунок 2.4 - Полигональная область
Матрица ячеек (рисунок 2.5). Графическая система генерирует матрицу прямоугольных ячеек, каждой из которых присвоен индивидуальный цвет.
Рисунок 2.5 - Матрица ячеек
Примитив общего назначения - обобщенный примитив вывода (рисунок 2.6). С помощью него графическая система предоставляет возможность использовать специфические средства графического вывода станции, например такие как рисование дуг окружностей и эллипсов.
Рисунок 2.6 - Обобщенный примитив вывода
Атрибуты описывают следующие характеристики примитивов вывода: Идентификатор указания - число, присваиваемое отдельным примитивам вывода внутри сегмента и возвращаемое устройством указания (масштаб толщины линии, масштаб маркера, масштаб расширения литеры, направление текста, межлитерный просвет, выравнивание текста, размер шаблона, точка привязки шаблона, матрица шаблона).
Растровая графика широко применяется при создании эскизов изделий. От художника не требуется жесткого соблюдения линейных размеров, точности воспроизведения контуров деталей и узлов. Однако, он может применять различные фактурные и цветовые сочетания.
2.3 Интерактивная машинная графика
Мир машинной графики расширился, когда графическая система смогла не только создавать изображения на носителе изображения устройства вывода, но и обрабатывать данные, которые вводит оператор на станции. Эта возможность - диалог, давший толчок быстрому росту использования устройств и систем машинной графики. Действия по указанию, выбору, рисованию, размещению или стиранию, производимые человеком непосредственным образом, и постоянный ответ системы на эти действия составляют действительно естественный способ взаимодействия человека с машинной средой. Именно для обеспечения такого взаимодействия и предназначена интерактивная машинная графика, Это самый мощный инструмент, подчиняющий интерфейс ЭВМ - человек требованиям человека.
Классы ввода
Ввод позиции - предоставляет прикладной программе (ПП) координаты точки (позицию) в мировых координатах. Позицию определяет оператор путем установки устройства ввода (например, перемещая следящее перекрестье или позиционируя перо на планшете).
Ввод последовательности позиций - предоставляет ПП последовательность позиций в мировых координатах. Координаты определяются оператором путем установки устройства ввода позиции в несколько различных положений.
Ввод числа - предоставляет ПП вещественное число. Это число определяет оператор, управляя устройством ввода числа.
Выбор альтернативы - предоставляет ПП неотрицательное число, соответствующее выбору из некоторого числа возможностей.
Указание объекта - предоставляет ПП имя сегмента и идентификатор указания. Сегмент идентифицируется оператором путем отметки части выведенного изображения.
Ввод строки - предоставляет ПП последовательность литер, строка набирается оператором с помощью устройства ввода строки.
Режимы работы ввода
ЗАПРОС - обращение к специальной функции в режиме ЗАПРОС вызывает попытку прочесть значение логического ввода с указанного логического устройства. Графическая система ожидает ввод до тех пор, пока оператор либо не введет данные, либо не выдаст сигнал отмены ввода.
ОПРОС - обращение к специальной функции в режиме ОПРОС предписывает графической системе возвратить текущее значение логического ввода с указанного логического устройства, не дожидаясь действий со стороны оператора.
СОБЫТИЕ - графическая система поддерживает одну входную очередь событий, состоящую из упорядоченной в порядке поступления записей о событиях.
В режиме ЗАПРОС чтение данных с графической станции похоже на чтение текстовой информации с терминала с помощью обычного оператора READ языка ФОРТРАН. В любой момент ПП может быть запрошен ввод только с одного устройства. Это ведет к диалогу, полностью управляемому прикладной программой, т.е. находясь в этом режиме, оператор не может, например, в произвольный момент свободно ввести позицию или выбрать альтернативу. Оператор может прервать ввод с помощью оговоренного при реализации действия отмены. Например, таким действием может стать нажатие соответствующей клавиши на станции.
В режимах ОПРОС и СОБЫТИЕ оператор может управлять любым из нескольких устройств по своему усмотрению.
Эхо, подсказки и инициализация устройств ввода
Когда прикладной программе нужно, чтобы оператор ввел данные, ей необходимо сообщить, что соответствующее действие требуется немедленно (в режиме ЗАПРОС) или ожидается (в режимах ОПРОС и СОБЫТИЕ). Такое приглашение оператора к некоторой активности называется подсказкой. Например, подсказкой может быть вывод на носитель изображения графических примитивов, текста «введите значение» или результат действия функции сообщения. Однако существуют конкретные виды подсказок, привязанные к устройствам графического ввода. Для устройства ввода позиции подсказкой служит появление перекрестья или курсора, для устройства ввода текста - появление курсора, а для устройства выбора, реализованного с помощью функциональной клавиатуры - мигание светового сигнала.
Подсказка - выводимая оператору информация, указывающая оператору на доступность данного логического устройства ввода.
В процессе взаимодействия графической системы с устройством ввода последнее содержит значение которое может изменить оператор. Текущее значение должно быть известно оператору. Например, для устройств ввода позиции или последовательности позиций эхом служат следящее перекрестье или курсор, помещенные в текущую позицию, для устройства ввода строки - визуальное представление на экране литер текста, для устройства указания - мерцание последнего помеченного сегмента.
Эхо - немедленное оповещение оператора о текущих значениях, которые обрабатываются устройством ввода.
следящее «резиновая нить» числовое представление
перекрестье
текущая позиция 100 164
фиксированная точка
Рисунок 2.7 - Эхо ввода позиции
указатель шкала числовое представление
Рисунок 2.8 - Эхо ввода числа
В режиме ЗАПРОС текущее значение передается ПП только по явному указанию оператора, например, нажатием кнопки после установки нужного значения устройства ввода позиции. Такое же особое действие требуется для постановки в очередь текущего значения в режиме СОБЫТИЕ. Вид эха, информирующего оператора о том, что особое действие воспринято, называется подтверждением.
Эхо, заключающееся в изображении примитивов вывода прикладной программой в результате интерпретации его значения ввода, называется откликом (обратной связью). Отклик - вывод, оповещающий оператора о том, каким образом прикладная программа интерпретировала значение логического ввода.
Сегменты