2 |
- |
1 |
/LOGO-dict-mm dup where not
|
|
|
2 |
{ dup 64 dict def currentdict } if
|
|
|
3 |
exch get
|
|
|
4 |
begin
|
|
|
5 |
/globesetup {
|
|
|
6 |
/r exch def
|
|
|
7 |
/N exch def
|
|
|
8 |
/d 2 N r mul N 1 sub add div def
|
|
|
9 |
/h d r mul def
|
|
|
10 |
} def
|
|
|
11 |
/mkabs {
|
|
|
12 |
/yp exch def
|
|
|
13 |
/xl exch def
|
|
|
14 |
dup dup 0 get xl mul 0 exch put
|
|
|
15 |
dup dup 1 get h mul yp add 1 exch put
|
|
|
16 |
dup dup 2 get xl mul 2 exch put
|
|
|
17 |
dup dup 3 get h mul yp add 3 exch put
|
|
|
18 |
dup dup 4 get xl mul 4 exch put
|
|
|
19 |
dup dup 5 get h mul yp add 5 exch put
|
|
|
20 |
} def
|
|
|
21 |
/topsegment {
|
|
|
22 |
/n exch def
|
|
|
23 |
/y n r mul n .5 add add d mul def
|
|
|
24 |
/a y 1 y dup mul sub sqrt atan def
|
|
|
25 |
/x a cos def
|
|
|
26 |
/c2 exch x y mkabs def
|
|
|
27 |
/ly1 exch h mul y add def
|
|
|
28 |
/lx1 exch x abs mul def
|
|
|
29 |
/c1 exch x y mkabs def
|
|
|
30 |
x y /moveto load
|
|
|
31 |
|
|
|
32 |
c1 aload pop /curveto load
|
|
|
33 |
lx1 ly1 /lineto load
|
|
|
34 |
c2 aload pop /curveto load
|
|
|
35 |
/closepath load
|
|
|
36 |
} def
|
|
|
37 |
/botsegment {
|
|
|
38 |
/n exch 1 add def
|
|
|
39 |
/y n r mul n .5 sub add d mul def
|
|
|
40 |
/a y 1 y dup mul sub sqrt atan def
|
|
|
41 |
/x a cos def
|
|
|
42 |
/c2 exch x y mkabs def
|
|
|
43 |
/ly1 exch h mul y add def
|
|
|
44 |
/lx1 exch x abs mul def
|
|
|
45 |
/c1 exch x y mkabs def
|
|
|
46 |
x y /moveto load
|
|
|
47 |
|
|
|
48 |
c1 aload pop /curveto load
|
|
|
49 |
lx1 ly1 /lineto load
|
|
|
50 |
c2 aload pop /curveto load
|
|
|
51 |
/closepath load
|
|
|
52 |
} def
|
|
|
53 |
/segment {
|
|
|
54 |
/n exch def
|
|
|
55 |
/dh exch 1 exch sub 2 div def
|
|
|
56 |
/ylb n r mul n 0.5 add add d mul def
|
|
|
57 |
/ylt ylb h add def
|
|
|
58 |
/yrb ylb h dh mul add def
|
|
|
59 |
/yrt ylt h dh mul sub def
|
|
|
60 |
/alb ylb 1 ylb dup mul sub sqrt atan def
|
|
|
61 |
/alt ylt 1 ylt dup mul sub sqrt atan def
|
|
|
62 |
/arb yrb 1 yrb dup mul sub sqrt atan 180 exch sub def
|
|
|
63 |
/art yrt 1 yrt dup mul sub sqrt atan 180 exch sub def
|
|
|
64 |
/xlb alb cos def
|
|
|
65 |
/xlt alt cos def
|
|
|
66 |
/xrb arb cos def
|
|
|
67 |
/xrt art cos def
|
|
|
68 |
/c4 exch xrb abs ylb mkabs def
|
|
|
69 |
/ly2 exch h mul ylb add def
|
|
|
70 |
/lx2 exch xrb abs mul def
|
|
|
71 |
/c3 exch xrb abs ylb mkabs def
|
|
|
72 |
/c2 exch xrt abs ylt mkabs def
|
|
|
73 |
/ly1 exch h mul ylt add def
|
|
|
74 |
/lx1 exch xrt abs mul def
|
|
|
75 |
/c1 exch xrt abs ylt mkabs def
|
|
|
76 |
xlb ylb /moveto load
|
|
|
77 |
|
|
|
78 |
c2 4 get c2 5 get /lineto load
|
|
|
79 |
c2 2 get c2 3 get
|
|
|
80 |
c2 0 get c2 1 get
|
|
|
81 |
lx1 ly1 /curveto load
|
|
|
82 |
c1 4 get c1 5 get /lineto load
|
|
|
83 |
c1 2 get c1 3 get
|
|
|
84 |
c1 0 get c1 1 get
|
|
|
85 |
xrt yrt /curveto load
|
|
|
86 |
|
|
|
87 |
c3 aload pop /curveto load
|
|
|
88 |
lx2 ly2 /lineto load
|
|
|
89 |
c4 aload pop /curveto load
|
|
|
90 |
/closepath load
|
|
|
91 |
} def
|
|
|
92 |
8 2.5 globesetup
|
|
|
93 |
/globe8 [
|
|
|
94 |
/newpath load
|
|
|
95 |
[ -.9 .1 -.6 .2 -.5 .2 ] -.5 .2 [ -.4 .2 .0 .0 .4 .0 ] 3 topsegment
|
|
|
96 |
[ -.9 -.35 -.85 -.35 -.8 -.35 ] -.1 -.35 [ .1 -.35 .3 .0 .5 .0 ]
|
|
|
97 |
[ -.8 .35 -.75 .35 -.7 .35 ] -.1 .35 [ .1 .35 .4 .0 .55 .0 ] .55 2 segment
|
|
|
98 |
[ -.8 -.35 -.75 -.35 -.7 -.35 ] .05 -.35 [ .2 -.35 .4 .0 .55 .0 ]
|
|
|
99 |
[ -.8 .35 -.75 .35 -.7 .35 ] .05 .35 [ .2 .35 .45 .0 .6 .0 ] .7 1 segment
|
|
|
100 |
[ -.8 -.35 -.75 -.35 -.7 -.35 ] .0 -.35 [ .15 -.35 .4 .0 .6 .0 ]
|
|
|
101 |
[ -.8 .35 -.75 .35 -.7 .35 ] .0 .35 [ .15 .35 .4 .0 .6 .0 ] .7 0 segment
|
|
|
102 |
[ -.7 -.35 -.65 -.35 -.6 -.35 ] -.1 -.35 [ .05 -.35 .35 .0 .55 .0 ]
|
|
|
103 |
[ -.7 .35 -.65 .35 -.6 .35 ] -.1 .35 [ .05 .35 .25 .0 .4 .0 ] .8 -1 segment
|
|
|
104 |
[ -.65 -.2 -.55 -.2 -.45 -.2 ] -.3 -.2 [ -.2 -.2 .2 .0 .3 .0 ]
|
|
|
105 |
[ -.65 .1 -.55 .1 -.45 .1 ] -.45 .1 [ -.3 .1 -.1 .0 .0 .0 ] .96 -2 segment
|
|
|
106 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ]
|
|
|
107 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] 1 -3 segment
|
|
|
108 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] -4 botsegment
|
|
|
109 |
] cvx def
|
|
|
110 |
12 3 globesetup
|
|
|
111 |
/globe12 [
|
|
|
112 |
/newpath load
|
|
|
113 |
[ -.8 .2 -.7 .25 -.5 .25 ] -.4 .25 [ -.2 .25 .0 .0 .2 .0 ] 5 topsegment
|
|
|
114 |
[ -.7 -.35 -.7 -.35 -.6 -.35 ] -.3 -.35 [ -.1 -.35 .3 .0 .55 .0 ]
|
|
|
115 |
[ -.7 .35 -.7 .35 -.6 .35 ] -.25 .35 [ -.05 .35 .4 .0 .55 .0 ] .6 4 segment
|
|
|
116 |
[ -.8 -.35 -.7 -.35 -.6 -.35 ] -.1 -.35 [ .1 -.35 .4 .0 .5 .0 ]
|
|
|
117 |
[ -.8 .35 -.7 .35 -.6 .35 ] -.1 .35 [ .1 .35 .4 .0 .5 .0 ] .7 3 segment
|
|
|
118 |
[ -.8 -.35 -.7 -.35 -.6 -.35 ] .0 -.35 [ .1 -.35 .45 .0 .55 .0 ]
|
|
|
119 |
[ -.8 .35 -.7 .35 -.6 .35 ] .0 .35 [ .15 .35 .4 .0 .5 .0 ] .8 2 segment
|
|
|
120 |
[ -.75 -.35 -.7 -.35 -.6 -.35 ] .0 -.35 [ .2 -.35 .4 .0 .5 .0 ]
|
|
|
121 |
[ -.75 .35 -.7 .35 -.6 .35 ] .0 .35 [ .2 .35 .45 .0 .55 .0 ] .9 1 segment
|
|
|
122 |
[ -.7 -.35 -.6 -.35 -.55 -.35 ] .0 -.35 [ .1 -.35 .45 .0 .55 .0 ]
|
|
|
123 |
[ -.7 .35 -.6 .35 -.55 .35 ] .0 .35 [ .1 .35 .5 .0 .6 .0 ] .9 0 segment
|
|
|
124 |
] cvx
|
|
|
125 |
[
|
|
|
126 |
[ -.7 -.35 -.6 -.35 -.5 -.35 ] -.15 -.35 [ .0 -.35 .4 .0 .5 .0 ]
|
|
|
127 |
[ -.65 .35 -.55 .35 -.45 .35 ] -.15 .35 [ .0 .35 .35 .0 .45 .0 ] .9 -1 segment
|
|
|
128 |
[ -.8 -.1 -.5 -.3 -.4 -.3 ] -.2 -.3 [ .0 -.3 .3 .0 .4 .0 ]
|
|
|
129 |
[ -.8 .1 -.5 .3 -.4 .3 ] -.2 .3 [ .0 .3 .2 .0 .3 .0 ] 1 -2 segment
|
|
|
130 |
[ -.7 -.1 -.5 -.15 -.4 -.15 ] -.3 -.15 [ -.2 -.15 .0 .0 .2 .0 ]
|
|
|
131 |
[ -.7 .05 -.5 .1 -.4 .1 ] -.4 .1 [ -.3 .1 .0 .0 .2 .0 ] 1 -3 segment
|
|
|
132 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ]
|
|
|
133 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] 1 -4 segment
|
|
|
134 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ]
|
|
|
135 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] 1 -5 segment
|
|
|
136 |
[ .0 .0 .0 .0 .0 .0 ] .0 .0 [ .0 .0 .0 .0 .0 .0 ] -6 botsegment
|
|
|
137 |
] cvx
|
|
|
138 |
4 array cvx
|
|
|
139 |
dup 0 5 -1 roll put
|
|
|
140 |
dup 1 /exec load put
|
|
|
141 |
dup 2 4 -1 roll put
|
|
|
142 |
dup 3 /exec load put
|
|
|
143 |
def
|
|
|
144 |
end
|
|
|
145 |
/build_L1 {
|
|
|
146 |
pop
|
|
|
147 |
LOGO-dict-mm begin
|
|
|
148 |
ptsize 29 lt
|
|
|
149 |
{ /globe /globe8 load def }
|
|
|
150 |
{ /globe /globe12 load def } ifelse
|
|
|
151 |
gsave
|
|
|
152 |
currentpoint translate
|
|
|
153 |
size 2 div dup scale
|
|
|
154 |
1.02 1 transform round exch round exch itransform
|
|
|
155 |
translate
|
|
|
156 |
globe fill
|
|
|
157 |
grestore
|
|
|
158 |
end
|
|
|
159 |
} def
|