Все рисование происходит в какой-нибудь системе координат. Система координат, принятая по умолчанию, показана на рис. Г.2, а. Начало координат расположено в нижнем левом углу поверхности дисплея (которая обычно называется страницей), направление осей х и у показано на рисунке. Единицей измерения по умолчанию принята 1/72 часть дюйма1, так что точка в один дюйм находится прямо над началом координат и имеет координаты (0,72).
Г2. Графические операторы в PostScript
Г2.1. Системы координат и преобразования
Это очень близко к классической «принтерной точке», которая равна 1/72,27 дюйма.
Г2. Графические операторы в PostScript
1009
В PostScript не предполагается какого-нибудь стандартного размера страницы; все фигуры, рисуемые по сценарию, могут быть масштабированы так, чтобы заполнить страницу любого размера. Рассмотрим, например, лист бумаги размером 8S на 11 дюймов, с книжной ориентацией (portrait orientation) - то есть его длинная сторона расположена вертикально. Эта ориентация показана на рис. Г.2, б. Правый верхний угол рабочей поверхности имеет координаты (8,5 х 72, 11 х 72) = (612,792).
Фигуры рисуются на PostScript посредством задания контура (path), образуемого в результате выполнения последовательности операторов построения контура (path construction operators). Как только контур построен, его можно нарисовать с помощью оператора stroke. Это аналогично передаче перу инструкции: провести чернилами черту вдоль указанного контура. В качестве альтернативы используется команда: fill. По этой команде область, определяемая контуром, заполняется каким-либо цветом или оттенком серого цвета.
Существует несколько операторов создания контура, причем наиболее известными из них являются moveto и 1 ineto. В языке PostScript поддерживаются такие же текущие координаты (current position - CP), какие рассматривалась в главе 2. Например, команда 1 ineto для формирования точки (х, у) выталкивает два верхних аргумента (это означает, что первым выталкиваемым значением является у, а вторым - х), затем добавляет к текущему контуру отрезок прямой линии от CP до точки (х, у) и обновляет CP на (х, у).