9base

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

L1 (5470B)


      1 /LOGO-dict-mm dup where not
      2 { dup 64 dict def currentdict } if
      3 exch get
      4 begin
      5 /globesetup {
      6 /r exch def
      7 /N exch def
      8 /d 2 N r mul N 1 sub add div def
      9 /h d r mul def
     10 } def
     11 /mkabs {
     12 /yp exch def
     13 /xl exch def
     14 dup dup 0 get xl mul 0 exch put
     15 dup dup 1 get h mul yp add 1 exch put
     16 dup dup 2 get xl mul 2 exch put
     17 dup dup 3 get h mul yp add 3 exch put
     18 dup dup 4 get xl mul 4 exch put
     19 dup dup 5 get h mul yp add 5 exch put
     20 } def
     21 /topsegment {
     22 /n exch def
     23 /y n r mul n .5 add add d mul def
     24 /a y 1 y dup mul sub sqrt atan def
     25 /x a cos def
     26 /c2 exch x y mkabs def
     27 /ly1 exch h mul y add def
     28 /lx1 exch x abs mul def
     29 /c1 exch x y mkabs def
     30 x y /moveto load
     31 0 0 1 a 180 a sub /arc load
     32 c1 aload pop /curveto load
     33 lx1 ly1 /lineto load
     34 c2 aload pop /curveto load
     35 /closepath load
     36 } def
     37 /botsegment {
     38 /n exch 1 add def
     39 /y n r mul n .5 sub add d mul def
     40 /a y 1 y dup mul sub sqrt atan def
     41 /x a cos def
     42 /c2 exch x y mkabs def
     43 /ly1 exch h mul y add def
     44 /lx1 exch x abs mul def
     45 /c1 exch x y mkabs def
     46 x y /moveto load
     47 0 0 1 a 540 a sub /arcn load
     48 c1 aload pop /curveto load
     49 lx1 ly1 /lineto load
     50 c2 aload pop /curveto load
     51 /closepath load
     52 } def
     53 /segment {
     54 /n exch def
     55 /dh exch 1 exch sub 2 div def
     56 /ylb n r mul n 0.5 add add d mul def
     57 /ylt ylb h add def
     58 /yrb ylb h dh mul add def
     59 /yrt ylt h dh mul sub def
     60 /alb ylb 1 ylb dup mul sub sqrt atan def
     61 /alt ylt 1 ylt dup mul sub sqrt atan def
     62 /arb yrb 1 yrb dup mul sub sqrt atan 180 exch sub def
     63 /art yrt 1 yrt dup mul sub sqrt atan 180 exch sub def
     64 /xlb alb cos def
     65 /xlt alt cos def
     66 /xrb arb cos def
     67 /xrt art cos def
     68 /c4 exch xrb abs ylb mkabs def
     69 /ly2 exch h mul ylb add def
     70 /lx2 exch xrb abs mul def
     71 /c3 exch xrb abs ylb mkabs def
     72 /c2 exch xrt abs ylt mkabs def
     73 /ly1 exch h mul ylt add def
     74 /lx1 exch xrt abs mul def
     75 /c1 exch xrt abs ylt mkabs def
     76 xlb ylb /moveto load
     77 0 0 1 alb alt /arc load
     78 c2 4 get c2 5 get /lineto load
     79 c2 2 get c2 3 get
     80 c2 0 get c2 1 get
     81 lx1 ly1	/curveto load
     82 c1 4 get c1 5 get /lineto load
     83 c1 2 get c1 3 get
     84 c1 0 get c1 1 get
     85 xrt yrt /curveto load
     86 0 0 1 art arb /arc load
     87 c3 aload pop /curveto load
     88 lx2 ly2 /lineto load
     89 c4 aload pop /curveto load
     90 /closepath load
     91 } def
     92 8 2.5 globesetup
     93 /globe8 [
     94 /newpath load
     95 [ -.9   .1  -.6   .2  -.5   .2  ] -.5   .2  [ -.4   .2   .0  .0  .4  .0 ] 3 topsegment
     96 [ -.9  -.35 -.85 -.35 -.8  -.35 ] -.1  -.35 [  .1  -.35  .3  .0  .5  .0 ]
     97 [ -.8   .35 -.75  .35 -.7   .35 ] -.1   .35 [  .1   .35  .4  .0  .55 .0 ] .55 2 segment
     98 [ -.8  -.35 -.75 -.35 -.7  -.35 ]  .05 -.35 [  .2  -.35  .4  .0  .55 .0 ]
     99 [ -.8   .35 -.75  .35 -.7   .35 ]  .05  .35 [  .2   .35  .45 .0  .6  .0 ] .7  1 segment
    100 [ -.8  -.35 -.75 -.35 -.7  -.35 ]  .0  -.35 [  .15 -.35  .4  .0  .6  .0 ]
    101 [ -.8   .35 -.75  .35 -.7   .35 ]  .0   .35 [  .15  .35  .4  .0  .6  .0 ] .7  0 segment
    102 [ -.7  -.35 -.65 -.35 -.6  -.35 ] -.1  -.35 [  .05 -.35  .35 .0  .55 .0 ]
    103 [ -.7   .35 -.65  .35 -.6   .35 ] -.1   .35 [  .05  .35  .25 .0  .4  .0 ] .8 -1 segment
    104 [ -.65 -.2  -.55 -.2 -.45  -.2  ] -.3   -.2 [ -.2  -.2   .2  .0  .3  .0 ]
    105 [ -.65  .1  -.55  .1 -.45   .1  ] -.45  .1  [ -.3   .1  -.1  .0  .0  .0 ] .96 -2 segment
    106 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    107 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]  1 -3 segment
    108 [  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -4 botsegment
    109 ] cvx def
    110 12 3 globesetup
    111 /globe12 [
    112 /newpath load
    113 [ -.8   .2  -.7  .25 -.5   .25 ] -.4  .25 [ -.2   .25  .0  .0  .2  .0 ] 5 topsegment
    114 [ -.7  -.35 -.7 -.35 -.6  -.35 ] -.3 -.35 [ -.1  -.35  .3  .0  .55 .0 ]
    115 [ -.7   .35 -.7  .35 -.6   .35 ] -.25 .35 [ -.05  .35  .4  .0  .55 .0 ] .6  4 segment
    116 [ -.8  -.35 -.7 -.35 -.6  -.35 ] -.1 -.35 [  .1  -.35  .4  .0  .5  .0 ]
    117 [ -.8   .35 -.7  .35 -.6   .35 ] -.1  .35 [  .1   .35  .4  .0  .5  .0 ] .7  3 segment
    118 [ -.8  -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
    119 [ -.8   .35 -.7  .35 -.6   .35 ]  .0  .35 [  .15  .35  .4  .0  .5  .0 ] .8  2 segment
    120 [ -.75 -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .2  -.35  .4  .0  .5  .0 ]
    121 [ -.75  .35 -.7  .35 -.6   .35 ]  .0  .35 [  .2   .35  .45 .0  .55 .0 ] .9  1 segment
    122 [ -.7  -.35 -.6 -.35 -.55 -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
    123 [ -.7   .35 -.6  .35 -.55  .35 ]  .0  .35 [  .1   .35  .5  .0  .6  .0 ] .9  0 segment
    124 ] cvx
    125 [
    126 [ -.7 -.35 -.6 -.35 -.5  -.35 ] -.15 -.35 [  .0  -.35  .4  .0  .5  .0 ]
    127 [ -.65 .35 -.55 .35 -.45  .35 ] -.15  .35 [  .0   .35  .35 .0  .45 .0 ] .9 -1 segment
    128 [ -.8 -.1  -.5 -.3  -.4  -.3  ] -.2  -.3  [  .0  -.3   .3  .0  .4  .0 ]
    129 [ -.8  .1  -.5  .3  -.4   .3  ] -.2   .3  [  .0   .3   .2  .0  .3  .0 ] 1 -2 segment
    130 [ -.7 -.1  -.5 -.15 -.4  -.15 ] -.3  -.15 [ -.2  -.15  .0  .0  .2  .0 ]
    131 [ -.7  .05 -.5  .1  -.4   .1  ] -.4   .1  [ -.3   .1   .0  .0  .2  .0 ] 1 -3 segment
    132 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    133 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -4 segment
    134 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
    135 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -5 segment
    136 [  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -6 botsegment
    137 ] cvx
    138 4 array cvx
    139 dup 0 5 -1 roll put
    140 dup 1 /exec load put
    141 dup 2 4 -1 roll put
    142 dup 3 /exec load put
    143 def
    144 end
    145 /build_L1 {
    146 pop
    147 LOGO-dict-mm begin
    148 ptsize 29 lt
    149 { /globe /globe8 load def }
    150 { /globe /globe12 load def } ifelse
    151 gsave
    152 currentpoint translate
    153 size 2 div dup scale
    154 1.02 1 transform round exch round exch itransform
    155 translate
    156 globe fill
    157 grestore
    158 end
    159 } def