|
|
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 /LOGO-dict-mm exch def ! 8: }{pop} ifelse ! 9: LOGO-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 ! 21: dup dup 0 get xl mul 0 exch put ! 22: dup dup 1 get h mul yp add 1 exch put ! 23: dup dup 2 get xl mul 2 exch put ! 24: dup dup 3 get h mul yp add 3 exch put ! 25: dup dup 4 get xl mul 4 exch put ! 26: dup 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 ! 37: x y /moveto load ! 38: 0 0 1 a 180 a sub /arc load ! 39: c1 aload pop /curveto load ! 40: lx1 ly1 /lineto load ! 41: c2 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 ! 53: x y /moveto load ! 54: 0 0 1 a 540 a sub /arcn load ! 55: c1 aload pop /curveto load ! 56: lx1 ly1 /lineto load ! 57: c2 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 ! 83: xlb ylb /moveto load ! 84: 0 0 1 alb alt /arc load ! 85: c2 4 get c2 5 get /lineto load ! 86: c2 2 get c2 3 get ! 87: c2 0 get c2 1 get ! 88: lx1 ly1 /curveto load ! 89: c1 4 get c1 5 get /lineto load ! 90: c1 2 get c1 3 get ! 91: c1 0 get c1 1 get ! 92: xrt yrt /curveto load ! 93: 0 0 1 art arb /arc load ! 94: c3 aload pop /curveto load ! 95: lx2 ly2 /lineto load ! 96: c4 aload pop /curveto load ! 97: /closepath load ! 98: } def ! 99: 8 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 ! 117: 12 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 ! 145: 4 array cvx ! 146: dup 0 5 -1 roll put ! 147: dup 1 /exec load put ! 148: dup 2 4 -1 roll put ! 149: dup 3 /exec load put ! 150: def ! 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 { ! 161: newpath ! 162: 1 36 div dup scale ! 163: 0 0 m 12 36 rl 8 0 rl -11 -36 rl C ! 164: 25 0 m -11 36 rl 8 0 rl 12 -36 rl C ! 165: 10 7 m 0 7 rl 14 0 rl 0 -7 rl C ! 166: 36 0 T ! 167: 80 6 m -3 0 -5 1.2 -6 2 rc -12 10 rl -2.4 2 -2.7 6 0 6 rc ! 168: 1 0 2 -1 2 -2 rc 0 -4 rl 7 0 rl 0 4 rl ! 169: 0 5 -3 7 -9 7 rc -6 0 -9 -3 -9 -7 rc ! 170: 0 -2 0 -3.6 2 -6 rc 12 -10 rl 6 -5 10 -6 13 -6 rc C ! 171: 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 ! 172: -4 5 rl -4 -2 -6 -6 -6 -9 rc 0 -7 6 -10 13 -10 rc ! 173: 9 0 14 6 14 11 rc 0 8 rl C ! 174: 82 0 T ! 175: 36 dup scale ! 176: } def ! 177: ! 178: end ! 179: ! 180: /build_LH { % 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: .78 dup scale ! 197: ATT fill ! 198: grestore ! 199: grestore ! 200: end ! 201: } def
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.