Скачиваний:
68
Добавлен:
16.04.2013
Размер:
3.38 Mб
Скачать

Блок-схема графической системы

Н

Графические примитивы вывода

а рис. приведена в расширенном виде блок-схема графической системы. Она дает общее представление об основных компонентах типичной графической системы: аппаратных, программных и информационных модулях.

Аппаратура

Программы

Рис. Основные аппаратные, программные и информационные модули графи- ческой системы

В памяти размещаются два важных информационных модуля, приведенные на рисунке.

Первым модулем является выполняемая дисплейная программа (называемая также дисплейным файлом). Она формируется графическим пакетом и читается в процессе регенерации изображения на экране.

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

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

Интерфейс между Простой Интерфейс Интерфейс между

прикладной графический между ПГП процессором

программой пакет и дисплейным и пользователем

и ПГП процессором

Рис. Блок-схема графического пакета.

Канал вывода: прикладная структура данных……изображение.

Канал ввода: действия пользователя-…….прикладная структура данных.

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

Существуют несколько подходов к описанию последовательности преобразований данных «объект — изображение». Один из них состоит в использовании понятия канала: четырехэтапный канал последовательно преобразует описание объекта во все более машинно-зависимые представления и, в конце концов, получается изображение на экране.

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

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

На третьем этапе генератор команд дисплейного процессора преобразует независимые от устройства спецификации примитивов (после отсечения) в нормированных координатах в команды данного конкретного дисплейного процессора. Соответствующие подпрограммы ПГП управляют сегментацией этого «машинного кода» и указывают генератору команд, какие сегменты необходимо добавить к дисплейной программе, какие сделать видимыми или невидимыми, какие передвинуть или удалить.

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

Для управления динамически меняющейся структурой в ПГП может использоваться дополнительная структура данных — справочник сегментов.

Отметим, что взаимосвязь выполнения процессора видовой операции и генератора дисплейных команд нами не определяется. Здесь возможны две альтернативные стратегии:

1) примитив, заданный в нормированных координатах, после операции отсечения отображается из окна в поле вывода и сразу же преобразуется в код дисплейного процессора;

2) эти два процессора взаимодействуют через промежуточную структуру данных, которая содержит примитивы, заданные в нормированных координатах после операции отсечения.

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

Тем не менее, создатели графических пакетов и прикладных программ должны делать каналы ввода-вывода как можно более эффективными, поскольку заметные задержки ответа (превышающие доли секунды), разрывающие цикл взаимодействия пользователя с ЭВМ, фактически снижают производительность пользователя, работающего с терминалом (слежение за курсором должно, конечно, осуществляться вообще без видимых задержек). Короче говоря, реакция на действие пользователя должна быть почти немедленной, т. е. обратная связь не должна приводить к нарушениям в координации глаз и рук человека. Управляемое пользователем движение и генерация динамического изображения на векторных дисплеях с регенерацией изображения являются хорошими примерами задач, где необходимо соблюдать этот принцип. Даже если такая динамика нереализуема, можно попытаться путем тщательного проектирования минимизировать неприятные разрывы в изображении, вызываемые мерцанием или скачкообразным переходом от одного изображения к другому, и обеспечить немедленно обратную связь на любое действие пользователя, и таким образом показать последнему, что его запрос обрабатывается.