Язык PostScript был разработан для получения графических изображений, для этого у него имеется большой набор операторов.
Рисование в PostScript начинается с конструирования пути на идеальной поверхности, называемой текущей страницей. Путь - набор прямых и кривых линий, определяющих область, которая будет заполнена, или траекторию, которая будет нарисована на текущей странице.
Конструируя путь, необходимо решить, что с ним делать: мы можем нарисовать линию заданной толщины или заполнить его, чтобы создать непрерывное изображение.
После того, как заполнение текущей страницы закончено, ее можно распечатать на физическом листе бумаги.
Начнем с простой задачи: нарисуем вертикальную линию длиной 5". Это выполнит следующая программа:
newpath
144 72 moveto
144 432 lineto
stroke
showpage
Разберем этот пример строка за строкой. Оператор newpath читает текущую страницу и объявляет, что начато рисование новой страницы. Конструирование пути начинается переносом воображаемого пера в заданную точку. Это перо при его переносах не оставляет "следа" на бумаге. Положение пера в каждый конкретный момент называется текущей точкой на текущем пути.
Оператор movedo переносит перо в точку, координаты которой заданы его операндами. он извлекает из стека два числа и рассматривает их как координаты х и у точки, которая становится текущей.
В системе координат, принятой в PostScript по умолчанию, начало координат находится в нижнем левом углу страницы. Координата х увеличивается вправо, а у - при движении вверх. Единица длины в этой системе равна 1/72 дюйма. Таким образом, оператор moveto переместит текущую точку на два дюйма вправо (144/78) и один дюйм вверх (72/72).
Оператор lineto добавит сегмент к текущему пути, нарисуя линию между текущей точкой и точкой, координаты которой заданы его операндами, в данном случае 144 и 432. Точка, заданная как операнд lineto становиться текущей точкой. Обратите внимание, что lineto в действительности не рисует ничего на текущей странице. Он просто добавляет сегмент линии к текущему пути. Позже эту линию можно будет нарисовать, но это не происходит автоматически.
Оператор stroke вызывает рисование сконструированного нами пути на текущей странице. Теперь этот путь становится видимой линией.
И, наконец, оператор showpage печатает текущую страницу (отправляет ее на печать).
Таким образом можно выделить 3 этапа построения:
1) Конструирование пути (newpath, moveto, lineto);
2) нанесение его на текущую страницу (stroke);
3) вывод текущей страницы (showpage).
Задание: Написать программу, которая строит квадрат со стороной 1 дюйм.