%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 3D extensions for MetaPost by Anthony Phan. % file: associaedre.mp % last modification: October 14, 2010 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % mpost % bash animate-script % rm -f .1* % xanim .gif % Associaedre ou polytope de Stasheff %Hn l’hyperplan de Rn d’´equation x1 + \dots + xn = n(n+1)/2 %pair e[]; %e1 = 1cm*dir(210); %e2 = 1cm*dir(-30); %e3 = 1cm*dir(90); %sqrttwo=sqrt(2); input m3Dplain; if false: premiere base : transposer la matrice suivante pour obtenir la transformation des coordonnees basis = \pmatrix{ 1/sqrt2&0&1/2&1/2\cr -1/sqrt2&0&1/2&1/2\cr 0&1/sqrt2&-1/2&1/2\cr 0&-1/sqrt2&-1/2&1/2\cr } deuxieme base : transposer la matrice suivante pour obtenir la transformation des coordonnees basis = {1\over2}\pmatrix{ 1&-1&1&1\cr 1&1&1&-1&1\cr -1&-1&-1&1\cr -1&1&1&1\cr } fi %vardef Q(expr a,b,c,d) = % (a-b)/sqrttwo*e1+(c-d)/sqrttwo*e2+(a+b-c-d)/2*e3 enddef; % il faudrait se ramener a l'hyperplan vectoriel a+b+c+d=0 % ie, soustraire 10/4*(1,1,1,1) puisque a+b+c+d=0. En fait, % ca ne change rien. Object Associaedron = save Q; vardef Q(expr a,b,c,d) = (a+b-c-d,-a+b-c+d,a-b-c+d)/2 enddef; for side = "Inside", "Outside": scantokens(side); FillArea Q(1,2,3,4), Q(1,4,1,4), Q(1,6,1,2), Q(1,6,2,1), Q(1,2,6,1); FillArea Q(2,1,6,1), Q(2,1,3,4), Q(1,2,3,4), Q(1,2,6,1); FillArea Q(3,1,2,4), Q(3,2,1,4), Q(1,4,1,4), Q(1,2,3,4), Q(2,1,3,4); FillArea Q(4,1,2,3), Q(4,2,1,3), Q(3,2,1,4), Q(3,1,2,4); FillArea Q(4,2,1,3), Q(4,3,1,2), Q(1,6,1,2), Q(1,4,1,4), Q(3,2,1,4); FillArea Q(4,3,1,2), Q(4,3,2,1), Q(1,6,2,1), Q(1,6,1,2); FillArea Q(4,3,2,1), Q(4,1,4,1), Q(2,1,6,1), Q(1,2,6,1), Q(1,6,2,1); FillArea Q(4,1,4,1), Q(4,1,2,3), Q(3,1,2,4), Q(2,1,3,4), Q(2,1,6,1); FillArea Q(4,1,2,3), Q(4,1,4,1), Q(4,3,2,1), Q(4,3,1,2), Q(4,2,1,3); endfor endObject; let Fill = AlphaFill; ObjectColor:=0.5[blue,white]; ObsZ:=40cm; n:=50; for i = 0 upto n-1: beginfig(100+i); UseObject(Associaedron, Origin, (i/n*180,0,0), 1cm); endfig; endfor; Animate(0,false); end.