File:Triskele-Symbol-spiral.svg

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