I, the copyright holder of this work, release this work into the public domain. This applies worldwide. In some countries this may not be legally possible; if so: I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
PS code
Converted from the following PostScript code:
%!
/archimdouble{
%%%%%%%%%%%%%%%%
% PostScript program to display an Archimedean spiral by approximating
% it with Bezier curves. Can display a double spiral (two spirals
% rotated by 180 degrees with respect to each other).
%%% Parameters:
% centerx = horizontal coordinate of center of spiral
% centery = vertical coordinate of center of spiral
% rotf = degrees to rotate
/sepwid 110 def % width separating successive turnings of spiral
% (half this if double spiral is selected)
/incrm 15 def % insert a curve point after this number of degrees
/sweeps 2 def % number of 360 degree turnings to show
/double 1 def % change to 0 to display single spiral
%%% Procedures:
/pi 3.1415926535898 def/radians 57.295779513082 def
/sepwid sepwid pi div 2 div def
gsave centerx centery translate rotf rotate
/aspiral{/prevbezy 0 def 0 0 moveto
0 incrm sweeps 360 mul{7{dup}repeat
phase add cos/costh exch def
phase add sin/sinth exch def
costh mul radians div/thcosth exch def
sinth mul radians div/thsinth exch def
thcosth sepwid mul/x exch def
thsinth sepwid mul/y exch def
/slope sinth thcosth add costh thsinth sub div def
sinth 0 gt sinth 0 eq costh -1 eq and or{/flag -1 def}{/flag 1
def}ifelse
/A exch def A 49.29348 lt A 180 gt A 196.273450852 lt and A 360
gt A 368.8301 lt and A 540 gt A 545.9907 lt and A 720 gt A
724.5217 lt and A 900 gt A 903.6281968 lt and or or or or
or{/flag flag neg def}if
incrm sub 3{dup}repeat phase add cos sepwid mul mul radians div
/prevx exch def phase add sin sepwid mul mul radians div
/prevy exch def
incrm add 3{dup}repeat phase add cos sepwid mul mul radians div
/nextx exch def phase add sin sepwid mul mul radians div
/nexty exch def
/prevdist x prevx sub dup mul y prevy sub dup mul add sqrt pi
div def
/nextdist x nextx sub dup mul y nexty sub dup mul add sqrt pi
div def
/normaliz slope slope mul 1 add sqrt def
0 eq{/prevbezx phase cos nextdist mul def}{prevbezx prevbezy
x 1 flag mul normaliz div prevdist mul sub y slope flag mul
normaliz div prevdist mul sub
x y curveto
/prevbezx x 1 flag mul normaliz div nextdist mul add def
/prevbezy y slope flag mul normaliz div nextdist mul add def}
ifelse}
for stroke}def
/phase 0 def aspiral
%%% If different sweeps parameter for second spiral, define here:
/sweeps 1.67 def
%%%
double 0 ne{/phase 180 def aspiral}if grestore
%%%%%%%%%%%%%%%%
}def
gsave
712 -134 translate -.75 .75 scale -3 rotate
/centerx 304 def/centery 550 def/rotf 0 def archimdouble
/centerx 707.333 def/centery 550 def/rotf 120 def archimdouble
/centerx 505.667 def/centery 899.2967 def/rotf 240 def archimdouble
grestore
showpage
%EOF
Information
Captions
Add a one-line explanation of what this file represents