50 Неверно задан номер преобразования.

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

ГЯОТ СТОТ, СТАК, СГОТ Уровень та.

SELECT NORMALIZATION TRANSFORMATION.

Параметры:

Вх номер преобразования (0 . . . п) Ц.

Действие:

Параметр заносится в поле «текущий номер преобразования нормирования» таблицы состояния ЯГС. В поле «прямоугольник отсечения» устанавливаются границы поля вывода указанного но­мера преобразования.

Описание функции в соответствии с п. 2.6.1.

Ошибки:

  1. ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

  1. Неверно задан номер преобразования.

  1. ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень та.

SET CLIPPING INDICATOR.

Параметры:

Вх индикатор отсечения (ОТСЕКАТЬ, НЕ ОТСЕКАТЬ) П. Действие:

В поле «индикатор отсечения» таблицы состояния ЯГС заносит­ся значение, заданное параметром.

Описание функции в соответствии с пп. 2.6.2; 2.7.4; 2.7.6; 2.8.4.

Ошибки:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

  1. Функции задания преобразования станции

    1. ЗАДАТЬ ОКНО СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень та.

SET WORKSTATION WINDOW.

Параметры:

Вх идентификатор станции И;

Вх границы окна станции

Xmin<Xmax, Ymin<Ymax НК 4хД.

Действие:

В поле «запрошенное окно станций» таблицы состояния станции заносятся значения, заданные параметром границы окна станции.

Если поле «способ динамической модификации для преобразо­вания станции» в таблице описания станции имеет значение НОИ или если поле «заполненность носителя изображения» в таблице состояния станции имеет значение ПУСТ, то в поле «текущее окно станции» заносится значение, заданное параметром, и в поле «со­стояние обновления преобразования станции» заносится значение НЕ ЗАДЕРЖАНО. В противном случае в поле «состояние обнов­ления преобразования станции» в таблице состояния станции за­носится значение ЗАДЕРЖАНО, а поле «текущее окно станции» не изменяется.

Описание функции в соответствии с п. 2.6.3.

Ошибки:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20 Неверно задан идентификатор станции;

25 Указанная станция не открыта;

33 Указанная станция — станция ввода метафайла ЯГС;

36 Указанная станция является общей памятью сегментов;

51 Неверно задан прямоугольник;

53 Окно станции находится вне единичного квадрата нормиро* ванных координат.

3.5.2.2. ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

СТОТ, СГОТ, СТАК Уровень та,.

SET WORKSTATION VIEWPORT.

Параметры:

Вх идентификатор стаиции И;

Вх границы поля вывода станции

Xmin<Xmax, Ymin<Ymax КУ 4ХД.

Действие:

В поле «запрошенное поле вывода станции» в таблице состояния станции заносится значение, заданное параметром «границы поля вывода станции».

Если поле «способ динамической модификации для преобразо­вания станции» в таблице описания станции имеет значение НОИ 'или если поле «заполненность носителя изображения» в таблице состояния станции имеет значение ПУСТ, то в поле «текущее поле 'вывода станции» заносится значение, заданное параметром, и в по­ле «состояние обновления преобразования станции» задается зна­чение НЕ ЗАДЕРЖАНО. В противном случае в поле «состояние об­новления преобразования станцией» в таблице состояния станции заносится значение ЗАДЕРЖАНО, а поле «текущее поле вывода станции» не изменяется.

Описание функции в соответствии с п. 2.6.3.

Ошибки:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20 Неверно задан идентификатор станции;

25 Указанная станция не открыта;

33 Указанная станция — станция ввода метафайла ЯГС;

36 Указанная станция является общей памятью сегментов;

51 Неверно задан прямоугольник;

54 Поле вывода станции не находится внутри пространства изображения.

3.6. Функции сегментации

  1. Функции действий над сегментами

    1. СОЗДАТЬ СЕГМЕНТ

СТАК Уровень 1а. ' CREAT SEGMENT.

Параметры:

Вх имя сегмента И

Действие:

ЯГС переводится в функциональное состояние СГОТ — «сег­мент открыт». Создается и подготавливается таблица состояния сегмента. Имя сегмента записывается в поле «имя открытого сег­мента» в таблицу состояния ЯГС. Последующие выходные прими­тивы до вызова функции ЗАКРЫТЬ СЕГМЕНТ объединяются в этот сегмент. Имя сегмента заносится в поле «список запомненных 'на станции сегментов» таблицы состояния станции всех активных станций. Все активные станции включаются в «набор связанных с сегментом станций» таблицы состояния сегмента. Имя сегмента за- ■носится в «набор имен существующих сегментов» таблицы состоя­ния ЯГС. Атрибуты примитивов не изменяются.

Описание функции в соответствии с п. 2.7.1.

Ошибки:

3 ЯГС не находится в состоянии СТАК;

120 Неверно задано имя сегмента;

121 Указанное имя сегмента уже используется.

  1. ЗАКРЫТЬ СЕГМЕНТ

СГОТ Уровень 1а.

CLOSE SEGMENT.

Параметры:

Нет.

Действие:

ЯГС переводится в функциональное состояние СТАК — «по крайней мере одна станция актйвна». Выходные примитивы больше не добавляются к сегменту. Поле «имя открытого сегмента» таб­лицы состояния ЯГС становится недоступным.

Описание функции в соответствии с п. 2.7.1.

Ошибки:

4 ЯГС не находится в состоянии СГОТ.

  1. ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

СТОТ, СТАК, СГОТ Уровень 1 а.

RENAME SEGMENT.

Параметры:

Вх старое имя сегмента И;

Вх новое имя сегмента И.

Действие:

Прежнее имя сегмента в поле «список запомненных на станции сегментов» таблицы состояния станции и в поле «набор имен су­ществующих сегментов» таблицы состояния ЯГС заменяется но­вым именем сегмента. Если сегмент открыт, то в поле «имя откры­того сегмента» таблицы состояния ЯГС заносится новое имя сег­мента.

(Примечание. Прежнее имя сегмента может быть вно®ь йспользовано прикладной программой.

Описание функции в соответствии с п. 2.7.1.

Ошибки:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

  1. Неверно задано имя сегмента;

  2. Указанное имя сегмента уже используется;

  3. Указанный сегмент не существует.

3.6.1.4. УНИЧТОЖИТЬ СЕГМЕНТ

СТОТ, СТАК, СГОТ Уровень 1а.

DELETE SEGMENT.

Параметры:

Вх имя сегмента И.

Действие:

Удаляются сегмент и его имя в поле «список запомненных на станции сегментов» таблиц состояния станций, связанных с сегмен­том. Имя сегмента удаляется из поля «набор имен существующих сегментов» в таблице состояния ЯГС. Таблица состояния сегмен­та удаляется.

(Примечание. Имя сегмента может вновь использоваться прикладной программой.

Описание функции в соответствии с пп. 2.5.3; 2.7.1.

Ошибки:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120 Неверно задано имя сегмента;

122 Указанный сегмент не существует;

125 Указанный сегмент открыт.

3.6.1.5. УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень 1а.

DELETE SEGMENT FROM WORKSTATION.

Параметры:

Вх идентификатор станции И;

Вх имя сегмента И.

Действие:

Сегмент удаляется с заданной станции. Имя сегмента удаляет­ся из поля «список запомненных на станции сегментов» таблицы состояния станции. Идентификатор станции удаляется из поля «набор связанных с сегментом станций» таблицы состояния сег­мента. Если поле «набор связанных с сегментом станций» стано­вится пустым, то сегмент удаляется, т. е. выполняется функция УНИЧТОЖИТЬ СЕГМЕНТ.

Описание функции в соответствии с пп. 2.5.3; 2.7.1.

Ошибки:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20 Неверно задан идентификатор станции;

25 Указанная станция не открыта;

33 Указанная станция — станция ввода метафайла ЯГС;

35 Указанная станция является станцией ввода;

120 Неверно задано имя сегмента;

123 Указанный сегмент не существует на указанной станции;

125 Указанный сегмент открыт.

3.6.1.6. СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

СТОТ, СТАК Уровень 2а.

ASSOSIATE SEGMENT WITH WORKSTATION

Параметры:

Вх идентификатор станции И;

•Вх имя сегмента И.

.Действие:

Заданный сегмент посылается на указанную станцию так же, хак если бы станция была активна во время его создания. Прямо­угольники отсечения копируются без изменений. Имя сегмента до­бавляется в поле «список запомненных на станции сегментов» таб­лицы состояния станции. Идентификатор станции включается в «набор связанных с сегментом станций» таблицы состояния сегмен­та.

П р им еч а н и я:

  1. Если сегмента нет в общей памяти сегментов, формируется сообщение об ошибке.

  2. Если сегмент уже связан со станцией, то данная функция не выполня­ется.

Описание функции в соответствии с пп. 2.5.3; 2.7.1.

Ошибки:

6 ЯГС не находится в состоянии СТОТ или СТАК;

20 Неверно задан идентификатор станции;

25 Указанная станция не открыта;

27 Общая память сегментов не открыта;

33 Указанная станция — станция ввода метафайла ЯГС;

35 Указанная станция является станцией ввода;

120 Неверно задано имя сегмента;

124 Указанный сегмент не существует в общей памяти сегмен­тов;

3.6.1.7. ВЫВЕСТИ КОПИЮ СЕГМЕНТ НА СТАНЦИЮ

СТОТ, СТАК Уровень 2а.

COPY SEGMENT ТО WORKSTATION.

Параметры:

Вх идентификатор станции И;

Вх имя сегмента И.

Действие:

После преобразования сегмента и отсечения по границам пря­моугольника отсечения, запомненного вместе с каждым примити­вом, примитивы сегмента посылаются на указанную станцию. Эти примитивы не запоминаются в сегменте.

Примечания: >

  1. Если указанный сегмент отсутствует в общей памяти сегментов, выда­ется сообщение об ошибке. Указанная станция не должна быть общей па­мятью сегментов.

  2. У всех копируемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания (в соответствии с п. 2.7.1).

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

Описание функции в соответствии с пп. 2.5.3; 2.7.1; 2.7.6.

Ошибки:

6 ЯГС не находится в состоянии СТОТ или СТАК;

  1. Неверно задан идентификатор станции;

  1. Указанная станция не открыта;

  1. Общая память сегментов не открыта;

  1. Указанная станция — станция ввода метафайла ЯГС; ' <

  1. Указанная станция является станцией ввода;

  2. Указанная станция является общей памятью сегментов;.

Неверно задано имя сегмента;124 Указанный сегмент не существует в общей памяти сег­

ментов.

З.6.І.8. ВСТАВИТЬ СЕГМЕНТ

. СТАК, СГОТ, Уровень 2а.

INSERT SEGMENT.

Параметры:

Вх имя сегмента И;

Вх матрица преобразования 2ХЗХД.

Действие: .

Преобразованные примитивы из заданного сегмента копируют­ся или в открытый сегмент (в состоянии СГОТ), или в поток при­митивов вне сегмента (в состоянии СТАК). В любом случае преоб­разованные примитивы посылаются на все активные станции. Ко­ординаты преобразуются сначала преобразованием сегмента, вста­вляемого сегмента, а затем умножением на заданную в параметре матрицу: где х и у — исходные координаты в НК;


МП М12 М13

М21 М22 М23



х' и у' — преобразованные координаты в НК;

МИ, М12, М13, М21, М22, М23 — значения, заданные парамет­ром Матрица преобразования.

М13, М23 являются координатами в НК, а остальные значе­ния — безразмерные. Для геометрических атрибутов векторов (на­пример ВЕРТИКАЛЬ ЛИТЕРЫ) значения М13 и М23 не учиты­ваются.

Это, преобразование называется преобразованием вставки и (концептуально) определено в пространстве НК.

Всё прямоугольники отсечения во вставляемом сегменте игно­рируются. Каждому примитиву назначается новый прямоугольник отсечения из таблицы состояния ЯГС, если индикатор отсечения имеет значение ОТСЕКАТЬ, или единичный прямоугольник (О . , 1 . ] X [0 • , 1 • ], если индикатор отсечения имеет значение НЕ ОТСЕКАТЬ. Все примитивы, обрабатываемые в процессе одно­го вызова функции ВСТАВИТЬ СЕГМЕНТ, получают одинаковый прямоугольник отсечения.

П р им ечания:

1. Если заданного сегмента нет в общей памяти сегментов, формируется со­общение об ошибке.

Є. У всех вставляемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания в соответствии с га. 2.7.1.

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

Описание функции в соответствии с пп. 2.5.3; 2.7.6. ■

Ошибки:

5 ЯГС не находится в состоянии СТАК или СГОТ;

27 Общая память сегментов не открыта;

120 Неверно задано имя сегмента;

  1. Указанный сегмент не существует в общей памяти сегментов;

  2. Указанный сегмент открыт.

  1. Функции задания атрибутов сегментов

  1. .6.2.1. ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

СТОТ, СТАК, СГОТ Уровень 1а.

SET SEGMENT TRANSFORMATION. . .... у

Параметры:

Вх имя сегмента И;

Вх матрица преобразования 2ХЗХД.

Действие:

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

МП М12 М13

М21 М22 М23

где х и у — исходные координаты в НК;

х' и у' — преобразованные координаты в НК;

МП, М12, М13, М21, М22, М23 — значения элементов матрицы преобразования.

М13, М23 являются координатами в НК, а остальные значения — безразмерные. Для геометрических атрибутов векторов (на­пример ВЕРТИКАЛЬ ЛИТЕРЫ) значения М13 и М23 не учитыва­ются.