hascall@atanasoff.cs.iastate.edu (John Hascall) (11/23/89)
Here's another one for the old postscript toolchest...
John Hascall / Iowa State Univ Comp Center / Ames IA
%!
/PROC {
%
% /NAME { #locals begin .... end } PROC -
%
dup dup 0 get 0 exch dict put bind def
} bind def
%
% Create an N-sided regular polygon centered at (X,Y) inscribed in a circle of
% a given radius with the first point "offset" degrees from the X-axis.
%
/Npoly {
%
% CENTERx CENTERy Radius Offset Width Nsides Npoly -
%
11 begin
/Nsides exch def
/Width exch def
/Offset exch def
/Radius exch def
/Y exch def
/X exch def
/Delta 360 Nsides div def
/Angle 0 def
/i 0 def
/x 0 def
/y 0 def
gsave
newpath
0 1 Nsides 1 sub {
/i exch def
i Delta mul Offset add /Angle exch def
Angle cos Radius mul X add /x exch def
Angle sin Radius mul Y add /y exch def
i 0 eq {
x y moveto
}{
x y lineto
} ifelse
} for
closepath
Width setlinewidth
stroke
grestore
end
} PROC
%
% CENTERx CENTERy Radius Offset Gray Nsides Npolyfill -
% is left as an exercise for the reader
%
% Here is a DEMO
300 300 200 0 3 8 Npoly
350 350 100 15 1 3 Npoly
showpage