From cf98cf2f6dd312687c649bda6484ca1cb9ba0f65 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sat, 23 Jun 2018 21:48:09 +0200 Subject: geht --- polyeder.mp | 97 ++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 43 deletions(-) (limited to 'polyeder.mp') diff --git a/polyeder.mp b/polyeder.mp index c0dbcb1..e5c7e5c 100644 --- a/polyeder.mp +++ b/polyeder.mp @@ -8,56 +8,67 @@ verbatimtex \begin{document} etex -beginfig(1); +ddd Ecken[]; +pair Kanten[]; - ddd Ecken[]; - pair Kanten[]; +centralperspective(3cm,4cm,4cm,(10cm,0cm,0cm)); - centralperspective(3cm,4cm,4cm,(16cm,8cm,12cm)); +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: +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[2*i+j]=(1-2*i,(1-2*j)*(1-i),(1-2*j)*i); + = Ecken[j] + whatever*(Ecken[8+j]-Ecken[j]) + whatever*(Ecken[10+j]-Ecken[j]) endfor - Kanten[i]=(2*i,2*i+1); - 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 i=0 upto 1: - Ecken[4+i]=.25[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]=(13-i,14+i); - endfor - Kanten[20]=(14,15); +for j=1 upto 180: - for i=0 upto 20: - draw dddpoint(Ecken[xpart Kanten[i]])--dddpoint(Ecken[ypart Kanten[i]]); - endfor -% for i=0 upto 15: -% newlabel.b(decimal i, dddpoint(Ecken[i])); -% endfor + 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; -endfig; +endfor end; -- cgit v1.2.3