//paramètres de la maille a=2; b=2; c=3; alpha=90; gamma=120; beta=90; // coordonnées intermédiaires et translation x=b*cos(gamma); y=b*sin(gamma); s=(2*b*c*cos(180-alpha)+x^2+y^2-b^2-2*a*c*cos(180-beta))/(2*(a-x)); ty=(x-a)*(s+c*cos(180-beta))/y; tx=s+(y*ty)/(a-x); tz=sqrt(c^2+a^2-2*a*c*cos(180-beta)-ty^2-(a+tx)^2); tz2= sqrt(c^2-ty^2-tx^2); //vérification de la structure if (c^2+a^2-2*a*c*cos(180-beta)-ty^2-(a+tx)^2>0) { // construction des points A=[0,0,0]; B=[a,0,0]; D=[x,y,0]; C=[a+x,y,0]; E=[tx,ty,tz]; F=B+E; G=C+E; H=D+E; //construction de la maille points=[ A,B,C,D,E,F,G,H]; face=[[0,1,2,3],//sol [4,5,1,0],//au dessusi [7,6,5,4],//derrière [5,6,2,1],//droite [6,7,3,2],//gauche [7,4,0,3]];//devant polyhedron(points,face); //vérification des valeurs echo("y",y); echo("x",x); echo("s",s); echo("tx",tx); echo("ty",ty); echo("tz",tz); v1=B-E;// B et E v2=H-F;// F et H v3=A-F; v4=A-C; nv1=norm(v1); nv2=norm(v2); nv3=norm(v3); nv4=norm(v4); echo(nv1,"norme de v1"); echo(nv2,"norme de v2"); echo(nv3,"norme de v3"); echo(nv4,"norme de v4"); echo(c^2-ty^2-tx^2); echo("E-H",norm(E-H)); echo("F-G",norm(F-G)); echo(tz2); } else //si ça ne marche pas color([1,0.8,0]){ linear_extrude(4){text("erreur",font="Comic Sans MS:style= Bold");}};