LV - 9base - revived minimalist port of Plan 9 userland to Unix | |
git clone git://git.suckless.org/9base | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
LV (6614B) | |
--- | |
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 | |
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 … | |
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 … | |
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 … | |
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 … | |
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 … | |
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 … | |
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 … | |
115 [ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
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 ] … | |
143 [ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] … | |
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 } d… | |
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_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 |