Описание функции в соответствии с пп. 2.5.3; 2.5.5.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
33 Указанная станция — станция ввода метафайла ЯГС;
35 Указанная станция является станцией ввода;
36 Указанная станция является общей памятью сегментов.
СООБЩЕНИЕ
СТОТ, СТАК, СГОТ Уровень 1а- MESSAGE.
Параметры:
Вх идентификатор станции И;
Вх сообщение С.
Действие:
Сообщение отображается в некотором зависящем от реализации месте поля вывода станции или на отдельном устройстве, связанном со станцией.
Таблица состояния ЯГС остается неизменной.
Функция воздействует на станцию локальным способом (например, запрашивая оператора о необходимости сменить бумагу). Возможные воздействия на выполнение прикладной программы или последующих команд, посылаемых ЯГС на станцию, должны быть документированы-
Описание функции в соответствии с п. 2.5.6.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
36 Указанная станция является общей памятью сегментов.
РАСШИРЕНИЕ
ГЯОТ, СТОТ, СТАК, СГОТ Уровень тиа.
ESCAPE.
Параметры:
Вх идентификатор функции расширения И;
Вх запись входных данных функции расширения О;
Вых запись выходных данных функции расширения О.
Действие:
Вызывается указанная нестандартная функция расширения. Формат записи данных функции расширения может быть различным для различных функций. Могут быть введены ограничения на то, в каких состояниях ЯГС разрешает обращение к функции расширения. При определении новой функции расширения должны соблюдаться следующие правила:
не должны нарушаться концепции проектирования ЯГС;
не должны изменяться таблицы состояния ЯГС;
функция не должна генерировать графических выходных данных;
любые побочные действия должны быть подробно документированы.
Функции расширения могут применяться более чем к одной станции, например ко всем открытым станциям или ко всем активным станциям. Запись входных данных функции расширения может включать идентификатор станции там, где это требуется.
Примечание. Примеры функций расширения:
поддержка растровых устройств, позволяющих отображать более одного буфера кадра;
использование аппаратуры обработки растровых изображений для действий над массивами ячеек.
Если в языке программирования идентификатор функции расширения имеет тип ЦЕЛЫЙ, то положительные 'идентификаторы сохраняются для будущей стандартизации, а смысл отрицательных зависит от реализации.
Описание функции в соответствии с подразд. 2-13.
Ошибки:
8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;
Указанная функция расширения не обеспечена;
Идентификатор указанной функции расширения задан неверно;
‘ 182 Неверно задано содержимое записи данных функции рас
ширения.
Функции вывода графических данных
ЛОМАНАЯ
СТАК, СГОТ Уровень та.
POLYLINE.
Параметры:
Вх число точек (2 . . .п) Ц;
Вх координаты точек МК пХТ.
Действие:
Генерируется последовательность соединенных отрезков. Начало первого отрезка в первой точке. Концами первого и последующих отрезков являются вторая и последующие точки. Текущие значения атрибутов ломаной, заданные в таблице состояния ЯГС, связываются с примитивом.
Если после преобразования станции все точки совпадают, то сообщение об ошибке не выдается, и то, что вычерчивается, зависит от станции.
Описание функции в соответствии с пп. 2.4.1; 2.4.2; 2.4.3; 2.5.3.
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
100 Неверно задано число точек.
ПОЛИМАРКЕР
СТАК, СГОТ Уровень та.
POLYMARKER.
Параметры:
Вх число точек (1 .. ■ п) Ц}
Вх координаты точек МК пХТ.
Действие:
Генерируется последовательность маркеров, которые размещаются в указанных точках. Текущие значения атрибутов полимаркера, заданные в таблице состояния ЯГС, связываются с примитивом.
Примечание. Маркер видим тогда, когда его позиция находится внутри ирямоугольника отсечения.
Описание функции в соответствии с пп. 2.4.1; 2.4.2; 2.4.4; 2.5.3.
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
100 Неверно задано число точек.
3
СТАК, СГОТ Уровень та.
МК Т;
С.
.3-3. ТЕКСТTEXT.
Параметры:
Вх позиция текста
Вх строка литер
Действие:
Генерируется строка литер. Текущие значения атрибутов текста, заданные в таблице состояния ЯГС, связываются с примитивом. Позиция текста задана в мировых координатах и преобразуется текущим преобразованием нормирования.
Если после преобразования станции высота или ширина литеры нулевая, то сообщение не выдается, и то, что вычерчивается, зависит от станции.
Если строка литер содержит код управляющего символа, то результат зависит от станции: или выдается ошибка 101, или генерируется некоторый визуальный результат, или код игнорируется. Строка текста выводится на всех активных станциях, которые не выдают ошибку 101.
Примечание. Отсечение текста выполняется способом, зависящим от точности представления текста.
Описание функции в соответствии с пп. 2.4.1; 2.4.2; 2.4.5; 2,5-3.
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
101 Неверный код литеры.
ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ
СТАК, СГОТ Уровень та.
FILL AREA.
Параметры:
Вх число точек (3... п) Ц;
Вх координаты точек МК пХТ.
Действие:
Генерируется выходной примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ. Текущие значения атрибутов полигональной области, заданные в таблице состояния ЯГС, связываются с примитивом.
Полигональная область заполняется в соответствии с текущим видом заполнения (заданным через связку полигональной области или индивидуально в зависимости от соответствующего ФВА). Для вида заполнения ПУСТО вычерчивается граница области. При других видах заполнения граница вычерчивается таким образом, чтобы между граничащими областями не было пересечений или пропусков.
Если часть полигональной области отсекается, то генерируются новые границы. В результате может быть сгенерировано несколько' подобластей, как показано на черт. 14.
Отсечение примитивов ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ
Черт. 14
Внутренность многоугольника определяется следующим образом (черт. 15). Если число пересечений между выходящим из точки лучом и многоугольником нечетно, то эта точка лежит внутри многоугольника. Если число пересечений четно, то точка лежит вне многоугольника.
Если после преобразования станции все точки совпадут, то сообщение об ошибке не выдается и то, что вычерчивается, зависит от станции. После преобразования станции некоторые или все линии границы области могут иметь общие отрезки.
От станции зависит, будет или нет получившийся отрезок рассматриваться как часть границы.
Определение области примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ
Черт. 15
При формировании входных данных логического устройства указания примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ с видом заполнения ЗАЛИВКА или ПО ШАБЛОНУ выбирается путем указания точки внутри или на границе многоугольника. Указание точки в отверстии полигональной области не приводит к идентификации этой полигональной области. Примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ о видом заполнения ПУСТО выбирается путем указания точки на границе многоугольника. Примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ с видом заполнения ШТРИХОВКА выбирается путем указания точки на границе многоугольника или на линии штриховки.
Описание функции в соответствии с пп. 2.4.1; 2.4.2; 2.4.6; 2.5.3.
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
100 Неверно задано число точек.
МАТРИЦА ЯЧЕЕК
СТАК, СГОТ Уровень Оа.
CELL ARRAY.
Параметры:
Вх прямоугольник ячеек (Р, Q) МК 2хТ;
Вх размерности массива индексов
цвета Nx, Ny (1 ... п) 2ХЦ;
Вх массив индексов цвета (0...п) пХпХЦ.
Действие:
Генерируется примитив МАТРИЦА ЯЧЕЕК с использованием координат углов прямоугольника ячеек и размерностей массива индексов цвета.
Стороны прямоугольника параллельны осям системы мировых координат. Точки Р и Q определяют левый нижний и правый верхний углы прямоугольника. Прямоугольник делится на ячейки. Получается сетка, состоящая из (NxXNy) ячеек, где Nx и Ny — размерности массива индексов цвета. Каждая ячейка имеет ширину |хр—xq|/Nx и высоту |ур—yq | /Ny, где (хр, ур) — координаты точки Р, a (xq, yq) — координаты точки Q.
Массив индексов цвета ориентируется по отношению к прямоугольнику следующим образом:
элемент (1, 1) связывается с ячейкой, содержащей р;
элемент (Nx, Ny) связывается с ячейкой, содержащей Q;
элемент (1, Ny) связывается'с ячейкой, содержащей точку (Рх, Qy);
элемент (Nx, 1) связывается с ячейкой, содержащей точку (Qx, Ру).
Цвет каждой ячейки задается значением соответствующего элемента массива индексов цвета. Если значение индекса отсутствует в таблице индексов цвета, то используется зависящее от станции значение.
Прямоугольная сетка, заданная точками Р и Q и числом ячеек Nx и Ny, является объектом преобразований, которые могут преобразовать прямоугольные ячейки в параллелограммы.
Привязка преобразованных ячеек к элементам растра растрового устройства отображения выполняется следующим образом: элементу растра назначается цвет той ячейки, которая содержит его центральную точку. Таким образом, цвет элемента выбирается путем проверки точек преобразованного прямоугольника, соответствующих центральным точкам элементов растра, а не путем проверки областей при их фильтрации.
На черт. 16 указан способ привязки примитива МАТРИЦА ЯЧЕЕК к носителю изображения растрового устройства отображения.
При отображении примитива МАТРИЦА ЯЧЕЕК на нерастровый носитель изображения минимальным требованием является вычерчивание преобразованных границ примитива МАССИВ ЯЧЕЕК с использованием зависящих от реализации цвета, ширины и типа линий.
Если после преобразования станции четыре угловые точки совпадают или лежат на одной прямой, то сообщение об ошибке не выдается и то, что вычерчивается, зависит от станции.
Описание функции в соответствии с пп. 2.4.1; 2.4.2; 2.4.7; 2.5.3.
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
91 Неверно заданы размерности массива индексов цвета.
ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА
СТАК, СГОТ Уровень Оа.
GENERALIZED DRAWING PRIMITIVE.
Параметры:
Вх число точек (0...П) Ц;П
к носителю
ривязка примитивов МАТРИЦА ЯЧЕЕКизображения
Примитив
МАТРИЦА ЯЧЕЕК
NxNv ячеек
Преобразованный примитив МАТРИЦА ЯЧЕЕК
Позиции элементов растра на носителе изображения
Вх координаты точек МК пХТ;
Вх идентификатор ОПВ И;
Вх запись данных ОПВ О.
Действие:
Обобщенный примитив вывода (ОПВ), тип которого указан параметром идентификатор ОПВ, генерируется в соответствии с заданными точками и записью данных ОПВ. С примитивом связываются текущие значения атрибутов ломаной, полимаркера, текста или полигональной области. Какие наборы атрибутов используются для указанной функции ОПВ определено в таблице описания станции.
Примечание. Параметры функции ОПВ передаются «а станцию и интерпретируются зависящим от станции образом. Тем самым используются особые возможности станции. Даже в случае ошибки Г04 ОПВ отображается на всех активных станциях, способных отобразить данный ОПВ.
Следующие примитивы могут быть реализованы с помощью ОПВ:
окружность — заданными точками является центр и точка на окружности;
дуга окружности — заданными точками являются центр, начальная и конечная точки дуги окружности, которые должны быть соединены в направлении против часовой стрелки;
эллипс — заданными точками являются две фокусные точки и точка эллипса;
дуга эллипса — заданными точками являются две фокусные точки, начальная и конечная точки дуги эллипса, которые должны быть соединены в направлении против часовой стрелки;
интерполирующая кривая (например, сплайн) — заданными точками являются интерполируемые точки.
Для приведенных примеров ОПВ рекомендуется использовать атрибуты ломаной.
Точки-параметры ОПВ подвергаются преобразованиям ЯГС. Например ОПВ окружность будет появляться в виде эллипса при различном масштабировании по двум осям. При определении ОПВ указывается способ преобразования точек и геометрической формы ОПВ.
Результирующие выходные данные ОПВ отсекаются по границам окна станции и по границам прямоугольника отсечения, если индикатор отсечения имеет значение ОТСЕКАТЬ.
Если ОПВ поддерживается станцией, но не может быть сгенерирован при текущем преобразовании или прямоугольнике отсечения, то выдается ошибка 105. Запись данных ОПВ может содержать дополнительные данные (например, порядок вершин для сплайнов), которые не подвергаются преобразованиям. Содержимое записи данных должно быть определено для каждого ОПВ. При определении нового ОПВ не должны нарушаться концепции проектирования ЯГС. Набор обобщенных примитивов вывода, реализованных для каждой станции, может быть пустым.
Если идентификатор ОПВ в языке программирования имеет тип ЦЕЛЫЙ, положительные идентификаторы ОПВ резервируются для регистрации или будущей стандартизации, а смысл отрицательных идентификаторов зависит от реализации.