# короче /FS{gsave

короче /FS{gsave setgray fill grestore stroke} def % &quot;хитрая&quot; процедура заливки и обводки. % уровень &quot;серости&quot; при заливке берется из стека /halfray{gsave 0 100 rm 0 -100 rl -45 rotate 30 0 rl closepath FS grestore} def Из двух зеркально отраженных треугольников разного оттенка составим один луч. Чтобы отражение правильно работало, нужно, чтобы начало координат находилось в центре звезды: /ray{gsave 0.5 halfray grestore gsave -1 1 scale 0.9 halfray grestore} def Теперь из четырех лучей составляется звезда. Нужно просто рисовать луч в цикле, поворачиваясь на 90 градусов: /star{4 {ray 90 rotate} repeat} def Роза ветров состоит из двух звезд, причем нижняя немного поменьше: /windrose{currentpoint % положить в стек текущую точку translate % перенести начало координат gsave % сохранить состояние 0.9 0.9 scale % уменьшить чуть-чуть масштаб 45 rotate % повернуться для нижней звезды star % сама нижняя звезда grestore star %

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа