* example marks file for makelogo 1.84 and higher * define a bunny with a floppy ear u%{ /bunny { /radius exch cm def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /look y2 y1 sub x2 x1 sub atan def newpath /face { 0 0 radius 0 360 arc closepath stroke } def /ear { gsave radius 0.5 mul radius 2 mul translate 0 0 radius 3 div 0 360 arc stroke 1 4 scale 0 0 radius 3 div 0 360 arc closepath stroke grestore } def /rightear { gsave radius 0.5 mul radius 2 mul translate 0 0 radius 3 div 0 360 arc stroke gsave 1 4 scale 0 0 radius 3 div 180 0 arc stroke grestore gsave look 90 add rotate 1 4 scale 0 0 radius 3 div 180 0 arc stroke grestore grestore } def /eye { gsave radius 0.3 mul radius 0.3 mul translate 1 1 scale 0 0 radius 5 div 0 360 arc closepath stroke grestore } def /mouth { gsave -0.4 radius mul 0 translate 1 1 scale radius 0.3 mul radius -0.4 mul radius 0.2 mul -110 +30 arc stroke grestore } def gsave x1 y1 translate % 0 0 moveto x2 x1 sub y2 y1 sub lineto stroke face rightear eye gsave -1 1 scale ear eye grestore mouth grestore } bind def !%} * define an arrow u%{ % From page 141 of the PostScript Cookbook /arrowdict 14 dict def arrowdict begin /mtrx matrix def end /arrow % tx ty hx hy thick head len { arrowdict begin /headlength exch def /halfheadthickness exch 2 div def /halfthickness exch 2 div def /tipy exch def /tipx exch def /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /arrowlength dx dx mul dy dy mul add sqrt def /angle dy dx atan def /base arrowlength headlength sub def /savematrix mtrx currentmatrix def tailx taily translate angle rotate 0 halfthickness neg moveto base halfthickness neg lineto base halfheadthickness neg lineto arrowlength 0 lineto base halfheadthickness lineto base halfthickness lineto 0 halfthickness lineto closepath savematrix setmatrix end } def !%} * define a separate procedure that sets the arrow shape u%{ % thick head len /arrowshape {1 6 8} def !%} * This will undefine colors if placed below the color definition u /undefinecolors{ /red {0 0 0 setrgbcolor} def /green {0 0 0 setrgbcolor} def /blue {0 0 0 setrgbcolor} def /orange {0 0 0 setrgbcolor} def /black {0 0 0 setrgbcolor} def } def ! * define colors for debugging and making colored marks u /red {1 0 0 setrgbcolor} def /green {0 1 0 setrgbcolor} def /blue {0 0 1 setrgbcolor} def /orange {1 0.7 0 setrgbcolor} def /black {0 0 0 setrgbcolor} def ! * undefine the bunny and the colors u %/bunny {pop pop pop pop pop} def %undefinecolors ! * * circle stroked, filled and dotted: cs 1 -0.40 0.5 circle stroked U 1 2.00 0 1.00 5 15 30 arrow fill U 1.5 -0.52 2.5 -0.52 arrowshape arrow red fill % oxyR bottom U 1.5 -0.42 2.5 -0.42 arrowshape arrow fill % ahpC bottom cf 2 -0.30 0.5 circle filled U 2.5 -0.62 3.5 -0.62 arrowshape arrow blue fill % orfO bottom U 2.5 -0.47 3.5 -0.47 arrowshape arrow orange fill % katG bottom cd 3 -0.20 0.5 circle dotted U 3.5 -0.57 5.5 -0.57 arrowshape arrow green fill % mom bottom * * triangle stroked, filled and dotted: ts 4 -0.40 0.5 tf 5 -0.30 0.5 td 6 -0.20 0.5 * * box stroked, filled and dotted base to base: bs 7 -0.40 8 0 bf 8 -0.30 9 0 bd 9 -0.20 10 0 * * line stroked, filled and dotted base to base: ls 10 -0.40 11 0 * now the funny bunny: U 10.6 2.00 20 1.0 0.5 bunny U 10.6 1.50 20 1.0 0.5 bunny U 10.6 1.00 20 1.0 0.5 bunny U 10.6 0.50 20 1.0 0.5 bunny * * finish the lines: lf 11 -0.30 12 0 ld 12 -0.20 13 0 * * box stroked, filled and dotted, around bases: bs 13.5 -0.40 14.5 0 bf 14.5 -0.30 15.5 0 bd 15.5 -0.20 16.5 0 * * line stroked, filled and dotted, around bases: ls 16.5 -0.40 17.5 0 lf 17.5 -0.30 18.5 0 ld 18.5 -0.20 19.5 0 cs 25 0 5.0 circle stroked ts 25 0 5.0 circle stroked