From Wikipedia, the free encyclopedia
[edit] Summary
Triple spiral or spiral triskelion symbol with hollow triangle in center. Inspired by various Celtic decorative motifs, but this version is constructed from mathematical Archimedean spirals.
For other, versions of the spiral triskelion or triple-spiral symbols, see Image:Triskele-Symbol-spiral-five-thirds-turns.png , Image:Triple-Spiral-Symbol-filled.png , Image:Triple-Spiral-Symbol-4turns-filled.png , Image:Triskele-Symbol-spiral.png , or Image:Triple-Spiral-Symbol.png . For "wheeled" forms of the triple-spiral, see Image:Wheeled-Triskelion-basic.png , Image:Roissy triskelion iron ring signet.png , Image:Triple-spiral-wheeled-simple.png , or Image:Triskelion-spiral-threespoked-inspiral.png . For versions of a triple-spiral labyrinth, see Image:Triple-Spiral-labyrinth.png and Image:Triple-Spiral-labyrinth-variant.png .
Generated by means of 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
x y moveto x 1 flag mul normaliz div nextdist mul pi mul const mul add y
slope flag mul normaliz div nextdist mul pi mul const mul add lineto
stroke}def
/phase 0 def/const 3 def aspiral
%%% If different sweeps parameter for second spiral, define here:
/sweeps 1.67 def
%%%
double 0 ne{/phase 180 def/const 3.945 def aspiral}if grestore
%%%%%%%%%%%%%%%%
}def
gsave
600 0 translate -.5 .5 scale -3.685 rotate
/centerx 221.5 def/centery 550 def/rotf -39.989 def archimdouble
/centerx 789.833 def/centery 550 def/rotf 80.011 def archimdouble
/centerx 505.667 def/centery 1042.19089 def/rotf 200.011 def archimdouble
grestore .5 setlinewidth
350.167 264.925 moveto
377.085 399.621 lineto
246.976 355.585 lineto
closepath stroke
showpage
%%EOF
[edit] Licensing
File links
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):