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