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