АКТИВИРОВАТЬ СТАНЦИЮ (ГП);

{Устанавливается система координат}

ЗАДАТЬ ОКНО (1, ГРАНИЦЫ ОКНА);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (ПРЕОБРАЗОВАНИЕ 1); СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИИ (0.0), (О'.О), О, (1.1), МК,- МАТРИЦА);

REPEAT

ПРОЧИТАТЬ (ТИП СИМВОЛА, (ХПОЗ, УПОЗ), УГОЛ);.

CASE ТИП СИМВОЛА OF

ТРАНЗИСТОР;

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТ­

РИЦА, (0.0), (ХПОЗ,- УПОЗ), УГОЛ, (1,1), МК, МАТРИЦА ИТОГ);

ВСТАВИТЬ СЕГМЕНТ (СЕГ ТРАНЗИСТОР, МАТРИЦА ИТОГ); СОПРОТИВЛЕНИЕ:

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТ­РИЦА, (0.0), (ХПОЗ, УПОЗ), УГОЛ, (1.1), МК, МАТРИЦА ИТОГ);

ВСТАВИТЬ СЕГМЕНТ (СЕГ СОПРОТИВЛЕНИЕ, МАТРИЦА ИТОГ);. СОЕДИНЕНИЕ:

{Считываются параметры из неграфического файла}

ПРОЧИТАТЬ (ХПО31, УПО31)

ЛОМАНАЯ (2, (ХПОЗ, УПОЗ), (ПОЗІ, УПО31))

ENDCASE;

UNTIL КОНЕЦ ВХОДНОГО ФАЙЛА;

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (МВВО);

ЗАКРЫТЬ ЯГС;

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

Для создания нового изображения в новом окне требуется ввод позиции, указывающей на область команды, находящуюся внизу области изображения, содержащую надпись НОВЫЙ ВИД. Две последующие позиции задают нижний левый угол и верхний правый угол поля вывода изображения.

Для того, чтобы вызвать переход к новой последовательности связанных линий, требуется ввод позиции, указывающей на другую область команды, на­ходящуюся также внизу области изображения и содержащую надпись РАЗ­РЫВ. Для прекращения действий используется состояние ОТБОЙ функции- ЗАПРОСИТЬ.

Пример 6.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

ОТКРЫТЬ СТАНЦИЮ (ПЕРВАЯ, ВВДД, УОЭЛТ);

АКТИВИРОВАТЬ СТАНЦИЮ (ПЕРВАЯ);

{Установить окно для рисования всей картины}

ЗАДАТЬ ОКНО (1, 0, 100, 0, 100);

ЗАДАТЬ ПОЛЕ ВЫВОДА (1, 0.5, 0.95, 0.4, 0.8);

{Задается окно для отображения и рисования увеличений фрагментов изобраг- жения. В начальный момент отображается все изображение}

ЗАДАТЬ ОКНО (2, 0, 100, 0, 100);

ЗАДАТЬ ПОЛЕ ВЫВОДА (2, 0.05, 0.45, 0.4, 0.8);

{Задаются окна для команд}

ЗАДАТЬ ОКНО (3, 0, 8, 0, 1);

ЗАДАТЬ ПОЛЕ ВЫВОДА (3, 0.1, 0.9, 0.05, 0.15);

ЗАДАТЬ ОКНО (4, 0, 8, 0, 1);

ЗАДАТЬ ПОЛЕ ВЫВОДА (4, 0.1, 0.9, 0.15. 0.25);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (I, О, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (2, 1, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (3, 2, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (4, 3, ВЫШЕ);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (3);

ЗАДАТЬ ВЫСОТУ ЛИТЕР (0.8);

ТЕКСТ ((0.1, 0.1), «НОВЫЙ ВИД»);

Т[1] = (0,0);

Tf2J = (0,1);

TP} = (8,1);

Т(4) = (8,0);

Tf5| = TflJ;

ЛОМАНАЯ (5, т);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (4);.

ТЕКСТ ((0.1, 0.1), «РАЗРЫВ»);

ЛОМАНАЯ (5, т);

ТІ [Ц = (0,0);

Т1'[2] = (0,100);

T1J31 = ’(100. 100);

Т1[4} = (100,0);

Т1|[5| = Т1 (1<];

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

ЛОМАНАЯ (5, ТҐ);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (1);:

ЛОМАНАЯ (5, Т1);

{Были установлены и нарисованы границы областей. Массив КАРТИНА содер­жит пары точек, определяющих линии картины. Следующие программы исполь­зуются в примере, но не запрограммированы}:

РИСОВАНИЕ КАРТИНЫ — воспроизводит все ломаные, хранящиеся в мас­сиве КАРТИНА в окне, которое выбрано в качестве текущего.

ДОБАВЛЕНИЕ К КАРТИНЕ (Т) — добавляется точка Т в массив КАР­ТИНА.

НОВАЯ ЛОМАНАЯ В КАРТИНЕ — добавляется точка Т в массив КАР­ТИНА и указывается, что начинается новая ломаная.

УДАЛЕНИЕ КАРТИНЫ — из окна, которое выбрано в качестве текущего, удаляется весь набор ломаных.

ВЫВОД КАРТИНЫ — картина выводится в метафайл или на графопостро­итель}

(Запрещается рисование вне поля вывода}

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ (ОТСЕЧЕНИЕ);

{Подготавливается логическое устройство ввода позиции номер 1 в станции ПЕРВАЯ. Задается подсказка и это в виде пересечения вертикальной и гори­зонтальной линий, проходящих через весь экран}

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, (0:0), 1, 2, (0.0), (1J), ПУСТО);

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, ЗАПРОС, ЭХО);

ПОСЛ ПОЗ = НУЛЬПОЗ;

REPEAT

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ПОЗ);

IF СОСТОЯНИЕ = ОТБОЙ THEN GO ТО ФИНАЛ;

TF ПРЕОБР = Э ИЛИ ПРЕОБР = 4 THEN

BEGIN

REPEAT

ІПРЕОБРІ = ПРЕОБР;

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ПОЗ);

IF СОСТОЯНИЕ = ОТБОИ ИЛИ ПРЕОБР = 0 THEN GO ТО ФИНАЛ;

{Наличие следующей проверки позволяет ввести второй список команд в обла­сти команд}

IF ПРЕОБР = 3 ИЛИ ПРЕОБР = 4 THEN GO ТО СЛЕДУЮЩИЙ;

{В настоящее время имеется номер преобразования нормирования ПРЕОБР1, задающий действие и позиция ПОЗ в окне 1 или в окне 2}

IF ПРЕОБР1 = 3 THEN

{Увеличение. Необходимо две границы}

{Вторая граница устанавливается путем использования подсказки и эха в виде прямоугольника, диагональ которого перемещается методом «резиновая нить»}

BEGIN

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, ПОЗ, ПРЕОБР, 5, (0,0), (1,1), ПУСТО);

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ВЕРХНЯЯ ПРАВАЯ);

IF СОСТОЯНИЕ = ОТБОЙ ИЛИ ПРЕОБР = О THEN GO ТО ФИНАЛ;IF ПРЕОБР = 3 ИЛИ ПРЕОБР = 4 THEN GO ТО СЛЕДУЮЩИЙ;

{Сейчас введенная точка находится в одной из областей для рисования карти­ны}

{Сначала восстанавливается состояние логического устройства ввода позиции^ ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1> (0,0), 1, 2, (0.0)., "(1.1), ПУСТО);

{Затем задаются новые границы окна и пересматривается картина}

ЗАДАТЬ ОКНО (2, ПОЗ. X, ВЕРХНЯЯ ПРАВАЯ. X, ПОЗ. Y, ВЕРХНЯЯ ПРА­

ВАЯ. Y);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

УДАЛЕНИЕ КАРТИНЫ;

РИСОВАНИЕ КАРТИНЫ;

END;

ELSE;

BEGIN;

НОВАЯ ЛОМАНАЯ В КАРТИНЕ (ПОЗ);

ПОС Л ПОЗ = ПОЗ;

END;

GO ТО ВЫХОД ИЗ ЦИКЛА;

СЛЕДУЮЩИЙ:

UNTIL FALSE;

ВЫХОД ИЗ ЦИКЛА;

END;

ELSE

IF ПРЕОБР = 1 ИЛИ ПРЕОБР = 2 THEN

BEGIN

{Логическое устройство ввода позиции находилось в одной из двух областей рисования картины)

IF ПОСЛПОЗ = НУЛЬПОЗ THEN

BEGINНОВАЯ ЛОМАНАЯ В КАРТИНЕ (ПОЗ);

ПОС Л ПОЗ = ПОЗ;

END;

ELSE;

BEGIN

ДОБАВЛЕНИЕ К КАРТИНЕ (ПОЗ);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (1);

ЛОМАНАЯ (2, (ПОСЛПОЗ, ПОЗ));

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

ЛОМАНАЯ (2. (ПОСЛПОЗ, ПОЗ));

END;

END;

ELSE GO TO ОШИБКА;

UNTIL FALSE;

■ФИНАЛ;

ВЫВОД КАРТИНЫ;

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ПЕРВАЯ);

ЗАКРЫТЬ СТАНЦИЮ (ПЕРВАЯ);

ЗАКРЫТЬ ЯГС,

ОТКРЫТЬ ЯГС ЗАКРЫТЬ ЯГС ОТКРЫТЬ СТАНЦИЮ

ЗАКРЫТЬ СТАНЦИЮ

АКТИВИРОВАТЬ СТАНЦИЮ

ДЕАКТИВИРОВАТЬ СТАН­ЦИЮ

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ ПЕРЕРИСОВАТЬ ВСЕ СЕГ­МЕНТЫ НА СТАНЦИИ ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

СООБЩЕНИЕ РАСШИРЕНИЕ

ЛОМАНАЯ

ПОЛИМАРКЕР

ТЕКСТ

ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ

МАТРИЦА ЯЧЕЕК

ОБОБЩЕННЫЙ ПРИМИТИВ

ВЫВОД (ОПВ)

ПРИЛОЖЕНИЕ 9 Справочное

Таблица 17

КРАТКОЕ ОПИСАНИЕ ФУНКЦИЙ ЯГС

Н

Действие

аименование функции
  1. Функции управления

Начинается работа с ЯГС

Завершается работа с ЯГС

Создается соединение между станцией и ЯГС

Соединение между станцией и ЯГС пре­рывается

Выходные данные передаются на стан­цию

Передача выходных данных па станцию прекращается

Выполняются все отложенные действия и очищается поле вывода

Повторно рисуются все видимые сегмен­ты, содержащиеся в ПСС

Выполняются все отложенные действия и повторно отображаются все видимые сегменты, содержащиеся в ПСС

Задается состояние задержки для стан­ции

К станции посылается сообщение

Описание нестандартных свойств обору­дования

  1. Функции вывода графических данных

Генерируется ломаная линия, заданная точками в мировых координатах

Генерируется последовательность марке­ров заданного типа в указанных позициях в мировых координатах

Генерируется последовательность литер в заданной позиции в мировых координатах

Генерируется многоугольник, который мо­жет быть закрашен одним цветом, запол­нен шаблоном или может быть пустым

Заданная матрица индексов цвета при­вязывается к полю вывода

Генерируется обобщенный примитив вы­вода, который задан последовательностью точек в мировых координатах н записью данных

Наименование функции


Действие


3. Функции задания атрибутов выходных данных


3.1. Функции задания бутов


ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

ЗАДАТЬ ТИП ЛИНИИ


ЗАДАТЬ МАСШТАБ ТОЛЩИ­НЫ ЛИНИИ


ЗАДАТЬ ИНДЕКС ЦВЕТА ЛОМАНОЙ


ЗАДАТЬ ИНДЕКС ПОЛИ­МАРКЕРА

ЗАДАТЬ ТИП МАРКЕРА


ЗАДАТЬ МАСШТАБ МАРКЕРА


ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА


ЗАДАТЬ ИНДЕКС ТЕКСТА ЗАДАТЬ ШРИФТ И ТОЧ­НОСТЬ ТЕКСТА


ЗАДАТЬ МАСШТАБ РАСШИ­РЕНИЯ ЛИТЕРЫ

ЗАДАТЬ МЕЖЛИТЕРНЫИ ПРОСВЕТ


ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕ­

РЫ

ЗАДАТЬ НАПРАВЛЕНИЕ

ТЕКСТА


независимых от станций а т р и - примитивов

Задается индекс связи ломаной

Задается тип линий, который использует­ся, когда соответствующий ФВА имеет зна­чение ИНДИВИДУАЛЬНЫЙ

Задается масштаб толщины линии, кото­рый используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬ­НЫЙ

Задается индекс цвета ломаной, кото­рый используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬ­НЫЙ

Задается индекс связки для полимаркера

Задается тип маркера, который исполь­зуется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

Задается масштаб маркера, который ис­пользуется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

Задается индекс цвета полимаркера, ко­торый используется, когда соответствую­щий ФВА имеет значение ИНДИВИДУ­АЛЬНЫЙ

Выбирается индекс связки для текста

Задается шрифт и точность текста, кото­рые используются, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬ­НЫЙ

Задается масштаб, который используется, когда соответствующий ФВА имеет значе­ние ИНДИВИДУАЛЬНЫЙ

Задается величина промежутка между литерами, который используется, когда со­ответствующий ФВА имеет значение ИН­ДИВИДУАЛЬНЫЙ

Задается индекс цвета текста, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

Задается высота литеры

Задается вертикаль литеры

Задается одно из возможных направле­ний текста ВПРАВО, ВЛЕВО, ВВЕРХ иля ВНИЗ





























Наименование функции


Действие


ЗАДАТЬ ВЫРАВНИВАНИЕ

ТЕКСТА

ЗАДАТЬ ИНДЕКС ПОЛИГО­

НАЛЬНОЙ ОБЛАСТИ

ЗАДАТЬ ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ области


ЗАДАТЬ ИНДЕКС ЗАПОЛНЕ­НИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ


ЗАДАТЬ РАЗМЕР ШАБЛОНА


ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ

ШАБЛОНА


ЗАДАТЬ ФЛАГИ ВЫБОРКИ

АТРИБУТОВ


ЗАДАТЬ ИДЕНТИФИКАТОР

УКАЗАНИЯ


Задается горизонтальное и вертикальное выравнивание текста

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

Задается вид заполнения полигональной области, который используется, когда со­ответствующий ФВА имеет значение ИН­ДИВИДУАЛЬНЫЙ

Задается индекс вида заполнителя поли­гональной области, который используется, когда соответствующий ФВА имеет значе­ние ИНДИВИДУАЛЬНЫЙ

Задается индекс цвета полигональной области, который используется, когда со­ответствующий ФВА имеет значение ИН­ДИВИДУАЛЬНЫЙ

Задается размер шаблона, используемый при создании примитивов полигональная об­ласть с видом заполнения ПО ШАБЛО­НУ

Задается точка привязки шаблона, ис­пользуемая при создании примитивов поли­гональная область с видом заполнения ПО ШАБЛОНІ'

Значение каждой негеометрнческой ха­рактеристики примитива извлекается из со­ответствующего индивидуального атрибута или из подходящей связки станции

Задается идентификатор указания


3.2. Функции задания зависящих от станции атрибу-
тов примитивов


ЗАДАТЬ ПРЕДСТАВЛЕНИЕ

ЛОМАНОЙ

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ

ПОЛИМАРКЕРА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ

ТЕКСТА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ

ШАБЛОНА


Определяется представление ломаной на станции

Определяется представление полимаркера на станции

Определяется представление текста на станции

Определяется представление полигональ­ной области на станции


ЗАДАТЬ ПРЕДСТАВЛЕНИЕ

-ЦВЕТА


Определяется шаблон, который следует связать с индексом шаблона (т. е. с индек­сом заполнителя полигональной области)

Определяется цвет, который следует свя­зать с индексом цвета на станции