Семь уроков по PostScript


Начала графики - часть 3


 

Прямоугольник

Напишем программу, рисующую квадрат со стороной один дюйм, расположенный в центре страницы:

newpath

200 300 moveto

0 72 rlineto

0 -72 rlineto

-72 0 rlineto

5 setlinewidth

stroke  showpage

Использование приращений позволяет вам поместить квадрат в любое место страницы, исправив только одну строку. В этой программе новой является только предпоследняя строка

5 setlinewidth

Оператор setlinewidth позволяет вам установить ширину линии. В этой строке задана ширина 5/72 дюйма. Данный оператор действует на все линии, помещаемые на текущую страницу, пока не встретится другой оператор setlinewidth.

Рис. 1 (прогнать пример на принтере)

Наш квадрат, как вы заметили, имеет выщерблину в левом нижнем углу, так как у линий заметная толщина. Чтобы избежать этого явления, следует использовать новый оператор: closepath.

 newpath

200 300 moveto

0 72 rlineto

72 0 rlineto

0 -72 rlineto

closepath

5 setlinewidth

stroke  showpage

Оператор closepath добавляет к текущему пути линию, соединяющую текущую точку с начальной точкой адресуемой оператором moveto.

Научившись строить квадрат посмотрим как его можно заполнить. Для этой цели служит оператор fill, который "заливает" квадрат черными чернилами:

newpath

200 300 moveto

0 72 rlineto

72 0 rlineto

 0 -72 rlineto

сlosepath

fill

 showpage

Обратите внимание, что на этот раз  вместо перенесения прямых на текущую страницу (stroke), мы вызываем оператор fill, который заполняет некоторым цветом очерченную область. Уровень серого цвета для заполнения фигуры задается аргументом оператора setgray -- числом  в интервале от 0 (черный цвет) до 1(белый).

newpath

  200 300 moveto

  0 72 rlineto

  72 0 rlineto

  0 -72 rlineto

  .6 setgray

  fill

 showpage

Заданный уровень серого действует до появления следующего оператора setgray. Если setgray не задан, то по умолчанию область заполняется черным цветом. Так как у каждого типа принтера свой способ построения полутонов, то полутона одной и той же PostScript-страницы, выведенной на разных принтерах могут не совпадать. То, что вы получите  запустив эти программы может не совпадать по полутонам с рисунками в журнале.




- Начало -  - Назад -  - Вперед -



Книжный магазин