9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

LV (6614B)


      1 %
      2 % PostScript 12 and 8 line logos - vertical configuration. Switch occurs
      3 % automatically below point size 29. Code from Matthijs Melchior.
      4 %
      5 
      6 /LOGO-dict-mm where not {
      7 	64 dict /LOGO-dict-mm exch def
      8 }{pop} ifelse
      9 LOGO-dict-mm begin      	% initialize dictionary
     10 
     11 
     12 /globesetup {
     13 /r exch def
     14 /N exch def
     15 /d 2 N r mul N 1 sub add div def
     16 /h d r mul def
     17 } def
     18 /mkabs {
     19 /yp exch def
     20 /xl exch def
     21 dup dup 0 get xl mul 0 exch put
     22 dup dup 1 get h mul yp add 1 exch put
     23 dup dup 2 get xl mul 2 exch put
     24 dup dup 3 get h mul yp add 3 exch put
     25 dup dup 4 get xl mul 4 exch put
     26 dup dup 5 get h mul yp add 5 exch put
     27 } def
     28 /topsegment {
     29 /n exch def
     30 /y n r mul n .5 add add d mul def
     31 /a y 1 y dup mul sub sqrt atan def
     32 /x a cos def
     33 /c2 exch x y mkabs def
     34 /ly1 exch h mul y add def
     35 /lx1 exch x abs mul def
     36 /c1 exch x y mkabs def
     37 x y /moveto load
     38 0 0 1 a 180 a sub /arc load
     39 c1 aload pop /curveto load
     40 lx1 ly1 /lineto load
     41 c2 aload pop /curveto load
     42 /closepath load
     43 } def
     44 /botsegment {
     45 /n exch 1 add def
     46 /y n r mul n .5 sub add d mul def
     47 /a y 1 y dup mul sub sqrt atan def
     48 /x a cos def
     49 /c2 exch x y mkabs def
     50 /ly1 exch h mul y add def
     51 /lx1 exch x abs mul def
     52 /c1 exch x y mkabs def
     53 x y /moveto load
     54 0 0 1 a 540 a sub /arcn load
     55 c1 aload pop /curveto load
     56 lx1 ly1 /lineto load
     57 c2 aload pop /curveto load
     58 /closepath load
     59 } def
     60 /segment {
     61 /n exch def
     62 /dh exch 1 exch sub 2 div def
     63 /ylb n r mul n 0.5 add add d mul def
     64 /ylt ylb h add def
     65 /yrb ylb h dh mul add def
     66 /yrt ylt h dh mul sub def
     67 /alb ylb 1 ylb dup mul sub sqrt atan def
     68 /alt ylt 1 ylt dup mul sub sqrt atan def
     69 /arb yrb 1 yrb dup mul sub sqrt atan 180 exch sub def
     70 /art yrt 1 yrt dup mul sub sqrt atan 180 exch sub def
     71 /xlb alb cos def
     72 /xlt alt cos def
     73 /xrb arb cos def
     74 /xrt art cos def
     75 /c4 exch xrb abs ylb mkabs def
     76 /ly2 exch h mul ylb add def
     77 /lx2 exch xrb abs mul def
     78 /c3 exch xrb abs ylb mkabs def
     79 /c2 exch xrt abs ylt mkabs def
     80 /ly1 exch h mul ylt add def
     81 /lx1 exch xrt abs mul def
     82 /c1 exch xrt abs ylt mkabs def
     83 xlb ylb /moveto load
     84 0 0 1 alb alt /arc load
     85 c2 4 get c2 5 get /lineto load
     86 c2 2 get c2 3 get
     87 c2 0 get c2 1 get
     88 lx1 ly1	/curveto load
     89 c1 4 get c1 5 get /lineto load
     90 c1 2 get c1 3 get
     91 c1 0 get c1 1 get
     92 xrt yrt /curveto load
     93 0 0 1 art arb /arc load
     94 c3 aload pop /curveto load
     95 lx2 ly2 /lineto load
     96 c4 aload pop /curveto load
     97 /closepath load
     98 } def
     99 8 2.5 globesetup
    100 /globe8 [
    101 /newpath load
    102 [ -.9   .1  -.6   .2  -.5   .2  ] -.5   .2  [ -.4   .2   .0  .0  .4  .0 ] 3 topsegment
    103 [ -.9  -.35 -.85 -.35 -.8  -.35 ] -.1  -.35 [  .1  -.35  .3  .0  .5  .0 ]
    104 [ -.8   .35 -.75  .35 -.7   .35 ] -.1   .35 [  .1   .35  .4  .0  .55 .0 ] .55 2 segment
    105 [ -.8  -.35 -.75 -.35 -.7  -.35 ]  .05 -.35 [  .2  -.35  .4  .0  .55 .0 ]
    106 [ -.8   .35 -.75  .35 -.7   .35 ]  .05  .35 [  .2   .35  .45 .0  .6  .0 ] .7  1 segment
    107 [ -.8  -.35 -.75 -.35 -.7  -.35 ]  .0  -.35 [  .15 -.35  .4  .0  .6  .0 ]
    108 [ -.8   .35 -.75  .35 -.7   .35 ]  .0   .35 [  .15  .35  .4  .0  .6  .0 ] .7  0 segment
    109 [ -.7  -.35 -.65 -.35 -.6  -.35 ] -.1  -.35 [  .05 -.35  .35 .0  .55 .0 ]
    110 [ -.7   .35 -.65  .35 -.6   .35 ] -.1   .35 [  .05  .35  .25 .0  .4  .0 ] .8 -1 segment
    111 [ -.65 -.2  -.55 -.2 -.45  -.2  ] -.3   -.2 [ -.2  -.2   .2  .0  .3  .0 ]
    112 [ -.65  .1  -.55  .1 -.45   .1  ] -.45  .1  [ -.3   .1  -.1  .0  .0  .0 ] .96 -2 segment
    113 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    114 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]  1 -3 segment
    115 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -4 botsegment
    116 ] cvx def
    117 12 3 globesetup
    118 /globe12 [
    119 /newpath load
    120 [ -.8   .2  -.7  .25 -.5   .25 ] -.4  .25 [ -.2   .25  .0  .0  .2  .0 ] 5 topsegment
    121 [ -.7  -.35 -.7 -.35 -.6  -.35 ] -.3 -.35 [ -.1  -.35  .3  .0  .55 .0 ]
    122 [ -.7   .35 -.7  .35 -.6   .35 ] -.25 .35 [ -.05  .35  .4  .0  .55 .0 ] .6  4 segment
    123 [ -.8  -.35 -.7 -.35 -.6  -.35 ] -.1 -.35 [  .1  -.35  .4  .0  .5  .0 ]
    124 [ -.8   .35 -.7  .35 -.6   .35 ] -.1  .35 [  .1   .35  .4  .0  .5  .0 ] .7  3 segment
    125 [ -.8  -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
    126 [ -.8   .35 -.7  .35 -.6   .35 ]  .0  .35 [  .15  .35  .4  .0  .5  .0 ] .8  2 segment
    127 [ -.75 -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .2  -.35  .4  .0  .5  .0 ]
    128 [ -.75  .35 -.7  .35 -.6   .35 ]  .0  .35 [  .2   .35  .45 .0  .55 .0 ] .9  1 segment
    129 [ -.7  -.35 -.6 -.35 -.55 -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
    130 [ -.7   .35 -.6  .35 -.55  .35 ]  .0  .35 [  .1   .35  .5  .0  .6  .0 ] .9  0 segment
    131 ] cvx
    132 [
    133 [ -.7 -.35 -.6 -.35 -.5  -.35 ] -.15 -.35 [  .0  -.35  .4  .0  .5  .0 ]
    134 [ -.65 .35 -.55 .35 -.45  .35 ] -.15  .35 [  .0   .35  .35 .0  .45 .0 ] .9 -1 segment
    135 [ -.8 -.1  -.5 -.3  -.4  -.3  ] -.2  -.3  [  .0  -.3   .3  .0  .4  .0 ]
    136 [ -.8  .1  -.5  .3  -.4   .3  ] -.2   .3  [  .0   .3   .2  .0  .3  .0 ] 1 -2 segment
    137 [ -.7 -.1  -.5 -.15 -.4  -.15 ] -.3  -.15 [ -.2  -.15  .0  .0  .2  .0 ]
    138 [ -.7  .05 -.5  .1  -.4   .1  ] -.4   .1  [ -.3   .1   .0  .0  .2  .0 ] 1 -3 segment
    139 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    140 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -4 segment
    141 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    142 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -5 segment
    143 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -6 botsegment
    144 ] cvx
    145 4 array cvx
    146 dup 0 5 -1 roll put
    147 dup 1 /exec load put
    148 dup 2 4 -1 roll put
    149 dup 3 /exec load put
    150 def
    151 
    152 /l {  lineto } def
    153 /rl {  rlineto } def
    154 /m {  moveto } def
    155 /rm {  rmoveto } def
    156 /C { closepath } def
    157 /c {  curveto } def
    158 /rc {  rcurveto } def
    159 /T { m 0 29 rl -9.5 0 rl 0 7 rl 29 0 rl 0 -7 rl -9.5 0 rl 0 -29 rl C } def
    160 /ATT {
    161 newpath
    162 1 36 div dup scale
    163 0  0 m  12 36 rl  8 0 rl -11 -36 rl C
    164 25  0 m -11 36 rl  8 0 rl  12 -36 rl C
    165 10  7 m   0  7 rl 14 0 rl   0  -7 rl C
    166 36  0 T
    167 80  6 m -3 0 -5 1.2 -6 2 rc -12 10 rl -2.4 2 -2.7 6 0 6 rc
    168 1 0 2 -1 2 -2 rc 0 -4 rl 7 0 rl 0 4 rl
    169 0 5 -3 7 -9 7 rc -6 0 -9 -3 -9 -7 rc
    170 0 -2 0 -3.6 2 -6 rc 12 -10 rl 6 -5 10 -6 13 -6 rc C
    171 71 18 m 0 -6 rl 0 -5 -3 -7 -7 -7 rc -3 0 -5 2 -5 4 rc 0 1 0 3 2 4 rc
    172 -4 5 rl -4 -2 -6 -6 -6 -9 rc 0 -7 6 -10 13 -10 rc
    173 9 0 14 6 14 11 rc 0 8 rl C
    174 82  0 T
    175 36 dup scale
    176 } def
    177 
    178 end
    179 
    180 /build_LV { % standard ATT logo
    181     LOGO-dict-mm begin
    182 	/w exch def
    183 	ptsize 29 lt	% select globe, # lines depends on point size
    184 		{ /globe /globe8 load def }
    185 		{ /globe /globe12 load def } ifelse
    186 	gsave
    187 	 currentpoint translate
    188 	 size 2 div dup scale
    189 	 gsave
    190 	  1.02 1 transform round exch round exch itransform
    191 	  translate
    192 	  globe fill
    193 	 grestore
    194 	 gsave
    195 	  %2.15 .62 translate
    196 	  -0.1 -1.0 translate
    197 	  .78 dup scale
    198 	  ATT fill
    199 	 grestore
    200 	grestore
    201     end
    202 } def