xref: /plan9/sys/lib/troff/font/devutf/charlib/LV (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
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
9LOGO-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
21dup dup 0 get xl mul 0 exch put
22dup dup 1 get h mul yp add 1 exch put
23dup dup 2 get xl mul 2 exch put
24dup dup 3 get h mul yp add 3 exch put
25dup dup 4 get xl mul 4 exch put
26dup 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
37x y /moveto load
380 0 1 a 180 a sub /arc load
39c1 aload pop /curveto load
40lx1 ly1 /lineto load
41c2 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
53x y /moveto load
540 0 1 a 540 a sub /arcn load
55c1 aload pop /curveto load
56lx1 ly1 /lineto load
57c2 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
83xlb ylb /moveto load
840 0 1 alb alt /arc load
85c2 4 get c2 5 get /lineto load
86c2 2 get c2 3 get
87c2 0 get c2 1 get
88lx1 ly1	/curveto load
89c1 4 get c1 5 get /lineto load
90c1 2 get c1 3 get
91c1 0 get c1 1 get
92xrt yrt /curveto load
930 0 1 art arb /arc load
94c3 aload pop /curveto load
95lx2 ly2 /lineto load
96c4 aload pop /curveto load
97/closepath load
98} def
998 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
11712 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
1454 array cvx
146dup 0 5 -1 roll put
147dup 1 /exec load put
148dup 2 4 -1 roll put
149dup 3 /exec load put
150def
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 {
161newpath
1621 36 div dup scale
1630  0 m  12 36 rl  8 0 rl -11 -36 rl C
16425  0 m -11 36 rl  8 0 rl  12 -36 rl C
16510  7 m   0  7 rl 14 0 rl   0  -7 rl C
16636  0 T
16780  6 m -3 0 -5 1.2 -6 2 rc -12 10 rl -2.4 2 -2.7 6 0 6 rc
1681 0 2 -1 2 -2 rc 0 -4 rl 7 0 rl 0 4 rl
1690 5 -3 7 -9 7 rc -6 0 -9 -3 -9 -7 rc
1700 -2 0 -3.6 2 -6 rc 12 -10 rl 6 -5 10 -6 13 -6 rc C
17171 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
1739 0 14 6 14 11 rc 0 8 rl C
17482  0 T
17536 dup scale
176} def
177
178end
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
203