%!PS-Adobe-2.0 % % basic macros -------------------------------------------------------- /BD {bind def} bind def /cm {2.54 div 72 mul} BD /SL {setlinewidth} BD /SRGB {setrgbcolor} BD /M {moveto} BD /RM {rmoveto} BD /L {lineto} BD /RL {rlineto} BD /GS {gsave } BD /GR {grestore} BD /CPT {currentpoint T} BD % % auxiliary font macros ----------------------------------------------- /E {exch} BD /FFSFSF {E findfont E scalefont setfont} BD /FTB {/Times-Bold 62 FFSFSF} BD % % additional macros --------------------------------------------------- /TC {true charpath} BD /F {fill} BD /S {stroke} BD /D {def} BD /T {translate} BD /Sk {scale} BD /CP {closepath} BD /Ori {0 0 M} BD /OrR {Ori rotate} BD % % lut macros ---------------------------------------------------------- /lut2 { [1 0.5 0 1 0.6 0 1 0.75 0 1 0.8 0 1 1 0 0.8 0.9 0 0.7 0.9 0 0.6 0.9 0 0.5 1 0 0.25 1 0 0 1 0 0 1 0.5 0 1 1 0 0.7 1 0 0.5 1 0 0.2 1 0 0 1 0.2 0 1 0.5 0 1 0.7 0 1 1 0 1 1 0 0.5 1 0 0 0 0 0 ] } D /P2 { 3 mul lut2 exch 3 getinterval aload pop SRGB } BD % % peculiar macros ----------------------------------------------------- /lemnipt { % single lemniscate point 90 add /Lt E D Lt sin Lt sin mul 1 add /Lden E D Lt cos La mul 2 sqrt mul Lden div Lt sin Lt cos mul La mul 2 sqrt mul Lden div } BD % fromangle toangle lemnisc /lemnisc { /LTo E D /LFrom E D GS CPT LFrom lemnipt M LFrom 1 LTo { lemnipt L } for stroke GR } BD % body ------------------------------------------------------------------------------------- 3.5 cm 5 cm T 2.0 cm /La E D 1 cm 20 cm M 0 0 0 SRGB 0 360 lemnisc 3.0 cm /La E D 9 cm 20 cm M 1 0 0 SRGB 0 360 lemnisc 9 cm 15 cm M 23 -1 0 {/inx E D inx P2 inx 2 div SL GS 0 360 lemnisc GR } for 9 cm 10 cm M 23 -1 0 {/inx E D inx P2 inx 2 div SL GS 6 354 lemnisc GR } for 9 cm 5 cm M 0 0 1 SRGB 10 SL -175 175 lemnisc showpage