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
|
% nembends.mp
% L. Nobre G.
% 2002
%input featpost3Dplus2D;
%input mp-tool;
beginfig(1);
f := 2*(5,3,4);
Spread := 70;
numeric hsdev, basestep, basxstep, basesdev;
numeric i, j, k, coesdev, cylength, cyradius, basen;
numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, aone;
numeric atwo, zcurr, coestep, angsdev, basxsdev;
color lenvec, currpos;
coestep := -0.15;
cylength := 0.6;
cyradius := 0.1;
basen := 3;
basestep := cylength*1.6;
basxstep := cyradius*4;
basesdev := basestep*0.001;
basxsdev := basxstep*0.001;
hsdev := 0.005;
coesdev := 0.001;
angsdev := 0.02;
for i=-basen upto basen:
for j=-basen upto basen:
xcurr := i*basxstep + basxsdev*normaldeviate;
ycurr := j*basestep + basesdev*normaldeviate;
zcurr := ycurr**2*coestep + coesdev*normaldeviate;
aone := angsdev*normaldeviate;
atwo :=angle(1,ycurr*2*coestep)+angsdev*normaldeviate;
vcz := cosd( aone )*sind( atwo );
vcy := cosd( aone )*cosd( atwo );
vcx := sind( aone );
currpos := ( xcurr, ycurr, zcurr );
lenvec := cylength*( vcx, vcy, vcz );
rigorousdisc(0,true,currpos-0.5*lenvec,cyradius,lenvec);
endfor;
endfor;
endfig;
end;
|