summaryrefslogtreecommitdiff
path: root/polyeder.mp
blob: e5c7e5c8ea7c9b49f74afab52024476b7a65686c (plain)
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
64
65
66
67
68
69
70
71
72
73
74
input wurzel2008;
input tftools;
input tf3d;

verbatimtex
%&latex
\documentclass[mpost]{wurzel2008}
\begin{document}
etex

ddd Ecken[];
pair Kanten[];

centralperspective(3cm,4cm,4cm,(10cm,0cm,0cm));

for i=0 upto 1:
  for j=0 upto 1:
    Ecken[2*i+j]=(1-2*i,(1-2*j)*(1-i),(1-2*j)*i);
  endfor
  Kanten[i]=(2*i,2*i+1);
endfor

for i=0 upto 1:
  Ecken[4+i]=.3[Ecken[i],Ecken[1-i]];
  Ecken[6+i]=.3[Ecken[2+i],Ecken[4+i]];
  Kanten[2+i]=(2+i,6+i);
  Ecken[8+i]=Ecken[6+i]+whatever*(0,1,0)=(whatever,0,whatever);
  Kanten[4+i]=(6+i,8+i);
  Kanten[6+i]=(8+i,i);
  Ecken[10+i]=.9[Ecken[3-i],Ecken[4+i]];
  Kanten[8+i]=(3-i,10+i);
  Kanten[10+i]=(10+i,i);
endfor
for i=0 upto 1:
  Ecken[12+i]
    = Ecken[6+i]+whatever*(Ecken[3]-Ecken[2])
    = Ecken[1-i]+whatever*(Ecken[11-i]-Ecken[1-i])+whatever*(Ecken[9-i]-Ecken[1-i]);
  Kanten[12+i]=(6+i,12+i);
  Kanten[14+i]=(13-i,8+i);
endfor
for i=0 upto 1:
  Ecken[14+i]
    for j=0 upto 1:
      = Ecken[j] + whatever*(Ecken[8+j]-Ecken[j]) + whatever*(Ecken[10+j]-Ecken[j])
    endfor
    = Ecken[2] + whatever*(Ecken[3]-Ecken[2]) + whatever*(Ecken[10+i]-Ecken[2]);
  Kanten[16+i]=(10+i,14+i);
  Kanten[18+i]=(12+i,14+i);
endfor
Kanten[20]=(14,15);

for j=1 upto 180:

  beginfig(j);

    fill for i=0 upto 3: (if i<2: - fi 5cm, if (i=1) or (i=2): - fi 6cm) -- endfor cycle withcolor black;
  
    for i=0 upto 20:
      draw dddpoint(
        Ecken[xpart Kanten[i]] rotatedaround((0,1,0),90) rotatedaround((0,0,1),1*j)
      )--dddpoint(
        Ecken[ypart Kanten[i]] rotatedaround((0,1,0),90) rotatedaround ((0,0,1),1*j)
      ) withcolor white;
    endfor
  
  %  for i=0 upto 15:
  %    newlabel.b(decimal i, dddpoint(Ecken[i]));
  %  endfor
  
  endfig;

endfor

end;