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
|
% ultraimprovertex.mp
% L. Nobre G.
% 2012
input featpost3Dplus2D;
beginfig(1);
numeric r, i, ste;
r = 0.65;
ste = 4;
color cc, cl, sc, sl, pdir, inip;
cl = (3*r,0,0);
cc = (-1.5*r,0,-0.5*r);
sl = (0,1.7*r,0);
sc = (0,0,0.5*r);
rigorousdisc( 0, true, cc, r, cl);
spheroid( sc, sl, r );
drawoptions( withpen pencircle scaled 3pt );
for i=ste step ste until 360:
pdir := (-sind(i),cosd(i),0);
inip := r*(cosd(i),sind(i),0);
draw rp(ultraimprovertex( black, pdir, cc, r, cl, sc, sl, r, inip ));
endfor;
endfig;
beginfig(2);
numeric r, i, ste;
r = 0.65;
ste = 4;
color cc, cl, sc, sl, pdir, inip;
cl = (3.5*r,0,0);
cc = (-2*r,0,-0.5*r);
sl = (0,1.9*r,0);
sc = (0,0,0.95*r);
spheroid( cc, cl, r );
spheroid( sc, sl, r );
drawoptions( withpen pencircle scaled 3pt );
draw for i=ste step ste until 360:
hide( pdir := (-sind(i),cosd(i),0); inip := r*(cosd(i),sind(i),0); )
rp(necplusimprovertex( black, pdir, cc, cl, r, sc, sl, r, inip ))..
endfor cycle;
endfig;
beginfig(3);
numeric r, i, ste;
r = 0.65;
ste = 4;
color cc, cl, sc, sl, pdir, inip;
cl = (3*r,0,0);
cc = (-1.5*r,0,-0.5*r);
sl = (0.7*r,0,0);
sc = (0,0,0.5*r);
rigorousdisc( 0, true, cc, r, cl);
spheroid( sc, sl, r );
drawoptions( withpen pencircle scaled 3pt );
for i=ste step ste until 360:
pdir := (-sind(i),cosd(i),0);
inip := r*(cosd(i),sind(i),0);
draw rp(ultraimprovertex( black, pdir, cc, r, cl, sc, sl, r, inip ));
endfor;
endfig;
end.
|