короче /FS{gsave


короче /FS{gsave setgray fill grestore stroke} def % "хитрая" процедура заливки и обводки. % уровень "серости" при заливке берется из стека /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 %
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz