Для построения реального изображения одних отрезков прямых линий явно недостаточно. Поэтому в PostScript для построения нужных кривых, окружностей и дуг окружностей имеется ряд операторов. Во-первых, оператор arc. Он добавляет окружность к текущей траектории и требует наличия в стеке пяти аргументов:
- координат х, у центра окружности;
- радиуса;
- угла начала;
- угла конца дуги.
Угол строится против часовой стрелки:
100 100 42 30 110 arc
<рисунок 1 file R1.psc>
Аналогичный arc оператор arcn строит угол по часовой стрелке. Сравните:
100 100 42 30 110 arcn
<рисунок 2 file R2.psc>
Эти операторы ведут себя несколько иначе, если уже существует точка текущей траектории -- тогда дуга соединяется с ней прямой линией. Сравните:
newpath
150 200 60 30 150 arc stroke
<рисунок 3 file R3.psc>
и
newpath
150 200 moveto
150 200 60 30 150 arc stroke
<рисунок 4 file R4.psc>
Чтобы нарисовать окружность, нужно задать arc угол в 360 градусов, например:
150 200 60 0 360 arc
Задание 1. Используя оператор arc, нарисуйте произвольную ромашку с 4, 6 и 9 лепестками. Напишите процедуру, аргументом которой будет число лепестков.
Задание 2. Эллипсы можно получить, изменяя при рисовании окружности масштабы по осям координат. Напишите программу, в которой это используется.