aboutsummaryrefslogtreecommitdiff
path: root/troff/font/devutf/charlib/LV
blob: 280d390e797ce2b61e3459e284a3fdc54d408331 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
%
% PostScript 12 and 8 line logos - vertical configuration. Switch occurs
% automatically below point size 29. Code from Matthijs Melchior.
%

/LOGO-dict-mm where not {
	64 dict /LOGO-dict-mm exch def
}{pop} ifelse
LOGO-dict-mm begin      	% initialize dictionary


/globesetup {
/r exch def
/N exch def
/d 2 N r mul N 1 sub add div def
/h d r mul def
} def
/mkabs {
/yp exch def
/xl exch def
dup dup 0 get xl mul 0 exch put
dup dup 1 get h mul yp add 1 exch put
dup dup 2 get xl mul 2 exch put
dup dup 3 get h mul yp add 3 exch put
dup dup 4 get xl mul 4 exch put
dup dup 5 get h mul yp add 5 exch put
} def
/topsegment {
/n exch def
/y n r mul n .5 add add d mul def
/a y 1 y dup mul sub sqrt atan def
/x a cos def
/c2 exch x y mkabs def
/ly1 exch h mul y add def
/lx1 exch x abs mul def
/c1 exch x y mkabs def
x y /moveto load
0 0 1 a 180 a sub /arc load
c1 aload pop /curveto load
lx1 ly1 /lineto load
c2 aload pop /curveto load
/closepath load
} def
/botsegment {
/n exch 1 add def
/y n r mul n .5 sub add d mul def
/a y 1 y dup mul sub sqrt atan def
/x a cos def
/c2 exch x y mkabs def
/ly1 exch h mul y add def
/lx1 exch x abs mul def
/c1 exch x y mkabs def
x y /moveto load
0 0 1 a 540 a sub /arcn load
c1 aload pop /curveto load
lx1 ly1 /lineto load
c2 aload pop /curveto load
/closepath load
} def
/segment {
/n exch def
/dh exch 1 exch sub 2 div def
/ylb n r mul n 0.5 add add d mul def
/ylt ylb h add def
/yrb ylb h dh mul add def
/yrt ylt h dh mul sub def
/alb ylb 1 ylb dup mul sub sqrt atan def
/alt ylt 1 ylt dup mul sub sqrt atan def
/arb yrb 1 yrb dup mul sub sqrt atan 180 exch sub def
/art yrt 1 yrt dup mul sub sqrt atan 180 exch sub def
/xlb alb cos def
/xlt alt cos def
/xrb arb cos def
/xrt art cos def
/c4 exch xrb abs ylb mkabs def
/ly2 exch h mul ylb add def
/lx2 exch xrb abs mul def
/c3 exch xrb abs ylb mkabs def
/c2 exch xrt abs ylt mkabs def
/ly1 exch h mul ylt add def
/lx1 exch xrt abs mul def
/c1 exch xrt abs ylt mkabs def
xlb ylb /moveto load
0 0 1 alb alt /arc load
c2 4 get c2 5 get /lineto load
c2 2 get c2 3 get
c2 0 get c2 1 get
lx1 ly1	/curveto load
c1 4 get c1 5 get /lineto load
c1 2 get c1 3 get
c1 0 get c1 1 get
xrt yrt /curveto load
0 0 1 art arb /arc load
c3 aload pop /curveto load
lx2 ly2 /lineto load
c4 aload pop /curveto load
/closepath load
} def
8 2.5 globesetup
/globe8 [
/newpath load
[ -.9   .1  -.6   .2  -.5   .2  ] -.5   .2  [ -.4   .2   .0  .0  .4  .0 ] 3 topsegment
[ -.9  -.35 -.85 -.35 -.8  -.35 ] -.1  -.35 [  .1  -.35  .3  .0  .5  .0 ]
[ -.8   .35 -.75  .35 -.7   .35 ] -.1   .35 [  .1   .35  .4  .0  .55 .0 ] .55 2 segment
[ -.8  -.35 -.75 -.35 -.7  -.35 ]  .05 -.35 [  .2  -.35  .4  .0  .55 .0 ]
[ -.8   .35 -.75  .35 -.7   .35 ]  .05  .35 [  .2   .35  .45 .0  .6  .0 ] .7  1 segment
[ -.8  -.35 -.75 -.35 -.7  -.35 ]  .0  -.35 [  .15 -.35  .4  .0  .6  .0 ]
[ -.8   .35 -.75  .35 -.7   .35 ]  .0   .35 [  .15  .35  .4  .0  .6  .0 ] .7  0 segment
[ -.7  -.35 -.65 -.35 -.6  -.35 ] -.1  -.35 [  .05 -.35  .35 .0  .55 .0 ]
[ -.7   .35 -.65  .35 -.6   .35 ] -.1   .35 [  .05  .35  .25 .0  .4  .0 ] .8 -1 segment
[ -.65 -.2  -.55 -.2 -.45  -.2  ] -.3   -.2 [ -.2  -.2   .2  .0  .3  .0 ]
[ -.65  .1  -.55  .1 -.45   .1  ] -.45  .1  [ -.3   .1  -.1  .0  .0  .0 ] .96 -2 segment
[  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
[  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]  1 -3 segment
[  .0   .0   .0   .0  .0    .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -4 botsegment
] cvx def
12 3 globesetup
/globe12 [
/newpath load
[ -.8   .2  -.7  .25 -.5   .25 ] -.4  .25 [ -.2   .25  .0  .0  .2  .0 ] 5 topsegment
[ -.7  -.35 -.7 -.35 -.6  -.35 ] -.3 -.35 [ -.1  -.35  .3  .0  .55 .0 ]
[ -.7   .35 -.7  .35 -.6   .35 ] -.25 .35 [ -.05  .35  .4  .0  .55 .0 ] .6  4 segment
[ -.8  -.35 -.7 -.35 -.6  -.35 ] -.1 -.35 [  .1  -.35  .4  .0  .5  .0 ]
[ -.8   .35 -.7  .35 -.6   .35 ] -.1  .35 [  .1   .35  .4  .0  .5  .0 ] .7  3 segment
[ -.8  -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
[ -.8   .35 -.7  .35 -.6   .35 ]  .0  .35 [  .15  .35  .4  .0  .5  .0 ] .8  2 segment
[ -.75 -.35 -.7 -.35 -.6  -.35 ]  .0 -.35 [  .2  -.35  .4  .0  .5  .0 ]
[ -.75  .35 -.7  .35 -.6   .35 ]  .0  .35 [  .2   .35  .45 .0  .55 .0 ] .9  1 segment
[ -.7  -.35 -.6 -.35 -.55 -.35 ]  .0 -.35 [  .1  -.35  .45 .0  .55 .0 ]
[ -.7   .35 -.6  .35 -.55  .35 ]  .0  .35 [  .1   .35  .5  .0  .6  .0 ] .9  0 segment
] cvx
[
[ -.7 -.35 -.6 -.35 -.5  -.35 ] -.15 -.35 [  .0  -.35  .4  .0  .5  .0 ]
[ -.65 .35 -.55 .35 -.45  .35 ] -.15  .35 [  .0   .35  .35 .0  .45 .0 ] .9 -1 segment
[ -.8 -.1  -.5 -.3  -.4  -.3  ] -.2  -.3  [  .0  -.3   .3  .0  .4  .0 ]
[ -.8  .1  -.5  .3  -.4   .3  ] -.2   .3  [  .0   .3   .2  .0  .3  .0 ] 1 -2 segment
[ -.7 -.1  -.5 -.15 -.4  -.15 ] -.3  -.15 [ -.2  -.15  .0  .0  .2  .0 ]
[ -.7  .05 -.5  .1  -.4   .1  ] -.4   .1  [ -.3   .1   .0  .0  .2  .0 ] 1 -3 segment
[  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
[  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -4 segment
[  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ]
[  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] 1 -5 segment
[  .0  .0   .0  .0   .0   .0  ]  .0   .0  [  .0   .0   .0  .0  .0  .0 ] -6 botsegment
] cvx
4 array cvx
dup 0 5 -1 roll put
dup 1 /exec load put
dup 2 4 -1 roll put
dup 3 /exec load put
def

/l {  lineto } def
/rl {  rlineto } def
/m {  moveto } def
/rm {  rmoveto } def
/C { closepath } def
/c {  curveto } def
/rc {  rcurveto } def
/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
/ATT {
newpath
1 36 div dup scale
0  0 m  12 36 rl  8 0 rl -11 -36 rl C
25  0 m -11 36 rl  8 0 rl  12 -36 rl C
10  7 m   0  7 rl 14 0 rl   0  -7 rl C
36  0 T
80  6 m -3 0 -5 1.2 -6 2 rc -12 10 rl -2.4 2 -2.7 6 0 6 rc
1 0 2 -1 2 -2 rc 0 -4 rl 7 0 rl 0 4 rl
0 5 -3 7 -9 7 rc -6 0 -9 -3 -9 -7 rc
0 -2 0 -3.6 2 -6 rc 12 -10 rl 6 -5 10 -6 13 -6 rc C
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
-4 5 rl -4 -2 -6 -6 -6 -9 rc 0 -7 6 -10 13 -10 rc
9 0 14 6 14 11 rc 0 8 rl C
82  0 T
36 dup scale
} def

end

/build_LV { % standard ATT logo
    LOGO-dict-mm begin
	/w exch def
	ptsize 29 lt	% select globe, # lines depends on point size
		{ /globe /globe8 load def }
		{ /globe /globe12 load def } ifelse
	gsave
	 currentpoint translate
	 size 2 div dup scale
	 gsave
	  1.02 1 transform round exch round exch itransform
	  translate
	  globe fill
	 grestore
	 gsave
	  %2.15 .62 translate
	  -0.1 -1.0 translate
	  .78 dup scale
	  ATT fill
	 grestore
	grestore
    end
} def