В общем случае верхняя граница области представления литер для шрифта совпадает или очень близка к линии заглавной или к линии верхней границы выносного элемента, а нижняя граница — к линии нижней границы выносного элемента. В промежутке между верхней линией и линией заглавной, если он существует, может располагаться дополнительный знак, размещаемый над литерой, например знак ударения. Эти и другие детали определяются разработчиком шрифта. При горизонтальном размещении литер в вертикальном направлении должны исключаться наложения верх-:. них и нижних выносных элементов соседних литер (соответствует типографскому термину «плотный набор»).
Значения атрибутов ВЫСОТА ЛИТЕРЫ и ВЕРТИКАЛЬ ЛИТЕРЫ задаются в мировых координатах, в то же время сами литеры генерируются на станции в координатах устройства, используя зависящие от станции шрифт и точность. Поэтому геометрические атрибуты должны быть преобразованы так, чтобы станция имела возможность приемлемо создавать литеры. Вместе с кодами литер передаются значения вектора высоты литеры, параллельного вектору ВЕРТИКАЛЬ ЛИТЕРЫ и имеющего длину, равную значению атрибута ВЫСОТА ЛИТЕРЫ, и вектора ширины, параллельного вектору ГОРИЗОНТАЛЬ ЛИТЕРЫ и имеющего длину, равную значению атрибута ШИРИНА ЛИТЕРЫ. Эти векторы подвергаются преобразованию нормирования, преобразованию сегмента, если текст входит в состав сегмента, и преобразованию станции. Они также запоминаются в сегментах. Затем векторы могут быть использованы генератором литер на станции. Таким образом форма отдельных литер может быть искажена преобразованием нормирования с различными коэффициентами по осям X и Y и преобразованием сегментов.
Высота литеры на станции определяется длиной преобразованного вектора высоты. Направление вертикали литеры определяется направлением преобразованного вектора высоты. Ширина литеры задается длиной преобразованного вектора ширины, умноженного на отношение ширины литеры заданного шрифта к ее высоте и на масштаб расширения литеры. Направление линии основания литеры определяется направлением преобразованного вектора ширины. Литеры размещаются в граничном параллелограмме текста последовательно в соответствии со значениями атрибута НАПРАВЛЕНИЕ ТЕКСТА и МЕЖЛИТЕРНЫЙ ПРОСВЕТ.
Граничный параллелограмм текста затем располагается в соответствии со значением атрибута ВЫРАВНИВАНИЕ ТЕКСТА и позиции текста, содержащейся в задании примитива ТЕКСТ.
На черт. 4—7 приведены примеры действия различных значений атрибутов текста. На черт. 8 показаны примеры, иллюстрирующие воздействия различных преобразований нормирования на вид изображаемого текста.
Атрибуты примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ
Полигональная область имеет геометрический атрибут ТОЧКА ПРИВЯЗКИ ШАБЛОНА, а также два неявно задаваемых атрибута ВЕРТИКАЛЬ ШАБЛОНА и ГОРИЗОНТАЛЬ ШАБЛОНА. Они неявно определяются функцией ЗАДАТЬ РАЗМЕР ШАБЛОНА. Их значения связываются с примитивами ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ при создании примитивов и не могут быть изменены впоследствии. На значения этих атрибутов дейст-
ВЫСОТА ЛИТЕРЫ=1, ВЕРТИКАЛЬ ЛИТЕРЫ=(0,1), НАПРАВЛЕНИЕ ТЕКСТА-ВПРАВО, ВЫРАВНИВАНИЕ ТЕКСТА—(ОБЫЧНОЕ, ОБЫЧНОЕ)
ВЫСОТА ЛИТЕРЫ=0,5, ВЕРТИКАЛЬ ЛИТЕРЫ=(0,1), НАПРАВЛЕНИЕ ТЕКСТА-ВПРАВО, ВЫРАВНИВАНИЕ ТЕКСТА-(ОБЫЧНОЕ, ОБЫЧНОЕ)
ВЫСОТА ЛИТЕРЫ=1, ВЕРТИКАЛЬ ЛИТЕРЫ=(0,1), НАПРАВЛЕНИЕ ТЕКСТА=ВПРАВО, ВЫРАВНИВАНИЕ ТЕКСТА-(ПРАВОЕ, ПОВЕРХУ)
ВЫСОТА ЛИТЕРЫ=1, ВЕРТИКАЛЬ ЛИТЕРЫ=(0,1), НАПРАВЛЕНИЕ ТЕКСТА—ВНИЗ, ВЫРАВНИВАНИЕ ТЕКСТА—(ОБЫЧНОЕ, ОБЫЧНОЕ)
ВЫСОТА ЛИТЕРЬМ,
ВЕРТИКАЛЬ ЛИТЕРЫ=(1,0),
НАПРАВЛЕНИЕ ТЕКСТА-ВПРАВО, ВЫРАВНИВАНИЕ ТЕКСТА-(ОБЫЧНОЕ, ОБЫЧНОЕ)
Обозначения:
X — позиция текста - базовая линия или центральная линия — граничный прямоугольник
текста (указанный для НАПРАВЛЕНИЕ—ВНИЗ)
Примечания:
В показанных примерах текст имеет точность ДО ШТРИХА, коэффициент расширения литеры ревен 1 и межлитерный просвет равен 0.
В этих примерах линия заглавной совпадает с верхней линией.
Измененные атрибуты подчеркнуты
Влияние’изменений негеометрических ’ атрибутов текста
МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ=1 )
МЕЖЛИТЕРНЫЙ ЛРОСВЕТ=0
МЕЖЛИТЕРНЫЙ ЛРОСВЕТ=О
МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ= МЕЖЛИТЕРНЫЙ ПРОСВЕТА,3
Примечания;
В показанных примерах значения геометрических атрибутов приняты по умолчанию, а точность представления текста ДО ШТРИХА.
Измененные атрибуты подчеркнуты
Черт.
5
Влияние комбинированных изменений атрибутов текста
М АСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ»! МЕЖЛИТЕРНЫЙ ПРОСВЕТА ВЫСОТА ЛИТЕРЫ=!,414
ВЕРТИКАЛЬ ГИТЕРЫ=(-1,1)
НАПРАВЛЕНИЕ ТЕКСТА—ВПРАВО ВЫРАВНИВАНИЕ ТЕКСТА- (ОБЫЧНОЕ, ОБЫЧНОЕ!
М АСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ»!
МЕЖЛИТЕРНЫЙ ПРОСВЕТ»—0,3
ВЫСОТА ЛИТЕРЫ»!
ВЕРТИКАЛЬ ЛИТЕРЫ=(0,1)
НАПРАВЛЕНИЕ ТЕКСТА-ВЛЕЕО
ВЫРАВНИВАНИЕ ТЕКСТА-(ОБЫЧНОЕ, ОБЫЧНОЕ)
МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ»! МЕЖЛИТЕРНЫЙ ПРОСВЕТА ВЫСОТА ЛИТЕРЫ»!
ВЕРТИКАЛЬ ЛИТЕРЫ=(-1,0)
НАПРАВЛЕНИЕ ТЕКСТА-ВПРАВО ВЫРАВНИВАНИЕ ТЕКСТА-(ПОСЕРЕДИ-
М
НЕ, ПО 8ЄРХУ)
ВЕРТИКАЛЬ ЛИТЕРЫ=(О.!} НАПРАВЛЕНИЕ ТЕКСТА-ВНИЗ
В
Примечания:
1. Подчеркнуты на черт. 4 й 5.
ЫРАВНИВАНИЕ ТЕКСТА=(ЛЕВОЕ, ПОСЕРЕДИНЕ)и зменения относительно верхнего примера, показанного
2. В последнем примере показаны средняя линия и все прямоугольники литерВлияние нескольких изменений в атрибутах текста
НАПРАВЛЕНИЕ ТЕКСТА-ВВЕРХ
ВЫРАВНИВАНИЕ ТЕКСТА-(ЦЕНТРАЛЬНОЕ, ПО НИЗУ)
Примечание
Подчеркнуты изменения относительно верхнего примера черт. 4 и 5
Черт. 7
Влияние различных преобразований нормирования на текст точности до ШТРИХА
Вид текста после преобразования нормирования с равными коэффициентами по осям X и У
Вид текста после преобразования нормирования с коэффициентом маштабирования по оси X в 3 раза большим, чем по оси У
Черт. 8
вуют те же преобразования, что и на геометрические данные, содержащиеся в описании примитива.
Б.2. Представлением полигональной области на графической станции управляет ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ или набор индивидуально задаваемых атрибутов полигональной области (ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ, ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ и ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ или некоторая комбинация этих двух способов в зависимости от значений ФВА для вида заполнения индекса заполнителя и индекса цвета полигональной области.
ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ является указателем в таблице связок полигональной области, каждая запись которой содержит значения вида заполнения, индекса заполнителя и индекса цвета полигональной области.
Вид заполнения полигональной области используется для определения способа заполнения области. Он может иметь следующие значения:
ПУСТО — область не заполняется, а только вычерчивается граничная ломаная цветом, задаваемым индексом цвета полигональной области, который выбран либо через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. Тип линии и толщина линии зависят от реализации.
ЗАЛИВКА ЦВЕТОМ — внутренность многоугольника заполняется одним цветом, задаваемым индексом цвета полигональной; области, который выбран либо через связку полигональной области, либо индивидуально в зависимости от значения соответствующего ФВА.
ПО ШАБЛОНУ — внутренность многоугольника заполняется с использованием индекса заполнителя полигональной области, который выбран через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. В этом контексте индекс вида заполнителя может рассматриваться как индекс шаблона.
ШТРИХОВКА — внутренность многоугольника заполняется с использованием индекса цвета полигональной области и индекса заполнителя полигональной области, которые выбраны через связку полигональной области или индивидуально в зависимости от значения соответствующего ФВА. Индекс заполнителя полигональной области используется как показатель в списке видов штриховки; в этом случае он иногда рассматривается как индекс штриховки.
Для вида заполнения ПО ШАБЛОНУ шаблон определяется представлением шаблона, которое задается матрицей индексов цвета размером (NXXNY), являющихся указателями в таблице цвета. Размер и позиция начала шаблона определяются полем шаблона. Поле шаблона, представляющее собой параллелограмм, задается атрибутами ГОРИЗОНТАЛЬ ШАБЛОНА и ВЕРТИКАЛЬ ШАБЛОНА, определяемыми относительно атрибута ТОЧКА ПРИВЯЗКИ ШАБЛОНА. Концептуально поле шаблона подразделяется на сетку ячеек размером (NXXNY). Матрица индексов цвета связывается с ячейками следующим образом: элемент (1, NY) связывается с ячейкой, один из углов которой определяется значением атрибута ТОЧКА ПРИВЯЗКИ ШАБЛОНА; элементы с возрастающим первым индексом связываются с последовательными ячейками в направлении, указываемом атрибутом ГОРИЗОНТАЛЬ ШАБЛОНА; элементы с убывающим вторым индексом связываются с последовательными ячейками в направлении, указываемом атрибутом ВЕРТИКАЛЬ ШАБЛОНА. Атрибуты, определяющие поле шаблона, подвергаются всем преобразованиям, которые формируют преобразованное поле шаблона. Шаблон отражается на многоугольник путем многократного повторения преобразованного поля шаблона в направлениях, параллельных его сторонам, до заполнения всего многоугольника.
Отображение преобразованных ячеек шаблона на пиксели растрового дисплея выполняется по следующим правилам:
если центр пикселя лежит внутри параллелограмма, определяемого ячейкой, то ему приписывается цвет этой ячейки;
пикселю присваивается цвет ячейки, соответствующий центру пикселя.
Для станции, в которой могут применяться шаблоны, но нет средств для их преобразования, для заполнения многоугольника возможна генерация непреобразованных шаблонов.
Для вида заполнения ШТРИХОВКА индекс штриховки выбирается из видов штриховки. Виды штриховки больше нуля резервируются для будущей стандартизации; виды штриховки меньше нуля зависят от станции.
Будет ли штриховка подвергаться преобразованиям или нет зависит от станции.
Вид заполнения ПУСТО должен быть реализован на каждой станции вывода или ввода-вывода. Реализация остальных видов заполнения ЗАЛИВКА ЦВЕТОМ, ПО ШАБЛОНУ и ШТРИХОВКА зависит от конкретной станции.
Атрибуты примитива МАТРИЦА ЯЧЕЕК
2А.ТЛ. Матрица ячеек не имеет атрибутов, кроме ИДЕНТИФИКАТОРА УКАЗАНИЯ. При этом матрица индексов цвета, которые являются указателями в таблице цвета, является частью задания матрицы ячеек.
Атрибуты примитива ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА
Обобщенный примитив вывода (ОПВ) не имеет явно задаваемых метрических атрибутов. Подобная информация может быть задана в блоке данных ОПВ. Представлением ОПВ на станции управляют наборы атрибутов ломаной, полимаркера, • текста, полигональной области, но это представление может и не зависеть ни от одного из этих наборов. Будут ли при этом использованы индексы связок или индивидуально задаваемые атрибуты, зависит от значений соответствующих ФВА. Наборы атрибутов, наиболее подходящие для заданной функции ОПВ, включаются в состав ОПВ как часть его задания и записываются в таблицу описания станции. Например, если ОПВ является матрицей ячеек, то матрица индексов цвета должна присутствовать в блоке данных этого ОПВ.
Цвет
В ЯГС цвет определяется в нескольких различных ситуациях. Он может быть атрибутом примитива, тогда он задается через связку этого примитива, или как индивидуальный атрибут цвета этого примитива. Он может быть частью шаблона для примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, когда задается массив значений цвета, или цвет может быть частью самого примитива, называемого МАТРИЦА ЯЧЕЕК, когда также задается массив значений цветов. В каждом случае цвет определяется как индекс в таблице цвета на станции. На каждой станции имеется таблица цвета, в которой указаны все индексы цвета.
Размер таблицы цвета зависит от станции, но записи с номерами ноль и единица обязательны. Запись с номером ноль соответствует цвету фона. Цвет фона — это цвет поверхности визуализации после того, как она очищена. Запись с номером единица является цветом накладываемого изображения, принимаемым по умолчанию, а записи с номерами больше единицы, относятся к альтернативным цветам накладываемого изображения. Записи в таблице могут быть установлены функцией ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА, которая определяет цвет как комбинацию интенсивностей красного, зеленого и синего компонентов. Заданный цвет преобразуется в ближайший доступный цвет, поддерживаемый станцией. На некоторых станциях может оказаться невозможным изменить цвет фона, в этом случае преобразование заданного цвета в ближайший доступный цвет для фона может отличаться от аналогичного преобразования того же цвета, но когда он является цветом накладываемого изображения.
Некоторые станции не имеют возможности воспроизводить цвета (например станции могут воспроизводить цвет лишь с одним значением интенсивности красной, зеленой, синей составляющих либо они могут генерировать цвета только в виде интенсивностей одного и того же цвета); будем называть такие станции монохромными станциями. Способность станции воспроизводить цвета отмечается в поле «возможность цветопередачи» в таблице описания станции. На монохромных станциях интенсивность вычисляется из значений цвета зависящим от станции способом.