summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/proflycee/PfLEspace.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/metapost/proflycee/PfLEspace.mp')
-rw-r--r--Master/texmf-dist/metapost/proflycee/PfLEspace.mp762
1 files changed, 762 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/proflycee/PfLEspace.mp b/Master/texmf-dist/metapost/proflycee/PfLEspace.mp
new file mode 100644
index 00000000000..873ebd06844
--- /dev/null
+++ b/Master/texmf-dist/metapost/proflycee/PfLEspace.mp
@@ -0,0 +1,762 @@
+% PfLEspace.mp
+% Copyright 2024 Cédric Pierquet
+% Source David Nivaud (https://melusine.eu.org/syracuse/exemples/)
+% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+
+def repplansimple =
+ %plan simple
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t = (4u,0u);
+ r = (1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0 = (0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2 ;
+ draw z2--z3 ;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ %label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+enddef;
+
+def repinterplan =
+ %intersection de deux plans
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z5 = 0.5[z0,z1];
+ z6 = z5 transformed S;
+ z7 = (2.5u,-1u);
+ z8 = z7 transformed S;
+ z5 = 0.5[z9,z7];
+ z10= z9 transformed S;
+ draw z5--z6;
+ draw z9--z7;
+ draw z9--z10;
+ draw z10--z6;
+ draw z6--z3;
+ draw z6--z8 dashed evenly;
+ p1 = z2--z6;
+ q1= z9--z10;
+ z11 = p1 intersectionpoint q1;
+ draw z11--z6 dashed evenly;
+ draw z2--z11;
+ p2 = z7--z8;
+ q2= z5--z1;
+ z12 = p2 intersectionpoint q2;
+ draw z12--z8 dashed evenly;
+ draw z7--z12;
+ label.rt(btex $d$ etex scaled echelle, 0.5[z5,z6]);
+enddef;
+
+def repplantroispoints =
+ %representation d'un plan defini par trois points
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ dotlabel.top(btex $A$ etex scaled echelle, (2.25u,1.5u));
+ dotlabel.top(btex $B$ etex scaled echelle, (1.25u,.5u));
+ dotlabel.top(btex $C$ etex scaled echelle, (3.25u,1u));
+enddef;
+
+def repplandeuxdroites =
+ %representation d'un plan defini par deux droites secantes
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+enddef;
+
+def repplandroite =
+ %representation d'un plan defini par un point et une droite
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ dotlabel.top(btex $A$ etex scaled echelle, (2.05u,1.35u));
+ z4 = (1u,.5u);
+ z5 = (3.25u,1.05u);
+ draw z4--z5;
+ label.top(btex $d$ etex scaled echelle, z5);
+enddef;
+
+def repplandtespara =
+ %representation d'un plan defini par deux droites parallèles
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (1u,1.15u);
+ z5 =(3u,1.65u);
+ draw z4--z5;
+ z6 = (1.5u,0.2u);
+ z7 = z6 shifted (z5-z4);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+enddef;
+
+def droitesnoncoplan =
+ %representation de deux droites non parallelles et sans point commun
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.5u,.5u);
+ z5 = (4u,1u);
+ draw z4--z5;
+ label.top(btex $d$ etex scaled echelle, z5);
+ z6 = (2u,1.5u);
+ z7 = (0.2u,1u);
+ dotlabel.rt(btex $A$ etex scaled echelle, z6);
+ z9 = z6 shifted z7;
+ z10 = z6 shifted -2z7;
+ p1 = z6--z10;
+ p2 = z0--z1;
+ z11 = p1 intersectionpoint p2;
+ draw z6--z11 dashed evenly;
+ draw z11--z10;
+ draw z6--z9;
+ label.rt(btex $d'$ etex scaled echelle, z10);
+enddef;
+
+def repincidence =
+ %representation d'un plan
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4=(0u,-2.2u);
+ z5 = z4 transformed T;
+ z6 = z4 transformed S;
+ z7 = z4 transformed T transformed S;
+ draw z4--z6;
+ draw z4--z5 withpen pencircle scaled 0.05u;
+ draw z5--z7 withpen pencircle scaled 0.05u;
+ z8=1/5[z0,z1]+1/2[z0,z2];
+ z9=3/5[z4,z5]+1/2[z6,z4];
+ draw z8--z9;
+ z10 = z8 transformed S;
+ draw z8--z10;
+ z11 = z9 transformed S;
+ p1 = z10--z11;
+ q1 = z2--z3;
+ q2 = z0--z1;
+ q3 = z6--z7;
+ z12 = p1 intersectionpoint q1;
+ z13 = p1 intersectionpoint q2;
+ z14 = p1 intersectionpoint q3;
+ draw z10--z12;
+ draw z12--z13 dashed evenly;
+ draw z13--z14;
+ draw z14--z11
+ dashed evenly;
+ p2 = z8--z10;
+ z15 = p2 intersectionpoint q1;
+ draw z2--z15;
+ draw z15--z12 dashed evenly;
+ draw z12--z3;
+ p3 = z8--z9;
+ z16 = p3 intersectionpoint q2;
+ z17 = p3 intersectionpoint q3;
+ q4 = z4--z5;
+ z18 = p3 intersectionpoint q4;
+ draw z16--z12;
+ draw z6--z17;
+ draw z17--z14 dashed evenly;
+ draw z14--z7;
+ draw z18--z14;
+ p4 = z9--z11;
+ z19 = p4 intersectionpoint q4;
+ draw z9--z19;draw z19--z11 dashed evenly;
+ label.rt(btex $d$ etex scaled echelle, 0.5[z12,z16]);
+ label.rt(btex $d'$ etex scaled echelle, 0.5[z18,z14]);
+enddef;
+
+def repdroiteparaplans =
+ %droite parallele a deux plans secants
+ pair t,r;
+ transform T,S;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,1u); r=(0u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z1--z3;
+ z4=0.5[z0,z1];
+ z5 = z4 transformed S;
+ draw z4--z5;
+ label.lft(btex $\Delta$ etex scaled echelle,0.5[z4,z5]);
+ z6 = z4 shifted (1.5u,-1u);
+ z4=0.5[z6,z7];
+ z8 = z6 transformed S;
+ z9 = z7 transformed S;
+ draw z0--z4;
+ draw z4--z6;
+ draw z6--z8;
+ draw z8--z9;
+ draw z4--z7 dashed evenly;
+ p1= z4--z1;
+ p2 = z6--z8;
+ z10 = p1 intersectionpoint p2;
+ draw z4--z10 dashed evenly;draw z10--z1;
+ p3 = z2--z3;
+ p4 = z9--z7;
+ z11 = p3 intersectionpoint p4;
+ draw z11--z9;
+ draw z11--z7 dashed evenly;
+ draw z7--z4 dashed evenly;
+ z12 = (-1u,0u);
+ z13 = z12 shifted (0u,3u);
+ draw z13--z12;
+ label.lft(btex $d$ etex scaled echelle, z12);
+enddef;
+
+def reptoit =
+ %theoreme du toit
+ pair t,r,v;
+ transform T,S,V;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(3u,2u); r=(-2u,1.5u);v=(-3u,0u);
+ T = identity shifted t;
+ S = identity shifted r;
+ V = identity shifted v;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed S transformed T;
+ z4 = z0 transformed V;
+ z5 = z0 transformed V transformed T;
+ draw z0--z1;
+ draw z2--z3;
+ z101=0.1[z0,z1]; z10=0.9[z0,z1];
+ z23 = z101 transformed S;
+ z32=z10 transformed S;
+ z45 = z101 transformed V;
+ z54=z10 transformed V;
+ draw z101--z23;
+ draw z10--z32;
+ draw z23--z45;
+ draw z32--z54 dashed evenly;
+ p1 = z101--z23;
+ p2 = z4--z5;
+ z11 = p1 intersectionpoint p2;
+ draw z4--z11;
+ draw z11--z5 dashed evenly;
+ label.lft(btex $d$ etex scaled echelle, z0);
+ label.lft(btex $d'$ etex scaled echelle, z4);
+ label.top(btex $\Delta$ etex scaled echelle, z2);
+enddef;
+
+def repplanspara =
+ % plans paralleles a l'aide de droites secantes
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z14 = (0.8u,-1.5u); z15 =(4u,-1u);draw z14--z15;
+ z16 = (1u,-0.9u);z17=(3.6u,-2.1u);draw z16--z17;
+ label.rt(btex $d_{1}$ etex scaled echelle, z15);
+ label.rt(btex $d'_{1}$ etex scaled echelle, z17);
+enddef;
+
+def repdteplanpara =
+ % parallelisme plan et droite
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (1u,.5u);
+ z5 = (4u,1u);
+ draw z4--z5;
+ label.top(btex $d'$ etex scaled echelle, z4);
+ z6 = (1u,2.5u);
+ z7 = z6 shifted z5-z4;
+ draw z6--z7;
+ label.top(btex $d$ etex scaled echelle, z6);
+enddef;
+
+def repdtesortho =
+ %droites orthogonales
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(2u,3u); r=(0u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ draw z0--z1;
+ draw z0--z2;
+ label.bot(btex $I$ etex scaled echelle, z0);
+ z3=0.1[z0,z1];
+ z4=0.1[z0,z2];
+ z5=z3 shifted z4-z0;
+ draw z3--z5;
+ draw z4--z5;
+ z6=(0u,-1u);
+ z7 = z6 transformed T;
+ draw z7--z6;
+ label.bot(btex $\Delta$ etex scaled echelle, z7);
+ z8=(-1u,-1u);
+ z9= z8 transformed S;
+ label.lft(btex $d$ etex scaled echelle, z9);
+ draw z9--z8;
+enddef;
+
+def repdroiteorthoplan =
+ %droite orthogonale a un plan
+ pair t,r;
+ transform T,S;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ p1 = z4--z5;p2 = z6--z7;
+ z8 = p1 intersectionpoint p2;
+ z9 = z8 shifted (0u,2u);
+ label.rt(btex $\Delta$ etex scaled echelle, z9);
+ draw z8--z9;
+ z10 = z8 shifted (0u,-2u);
+ p3 = z9--z10;
+ p4 = z0--z1;
+ z11 = p3 intersectionpoint p4;
+ draw z8--z11 dashed evenly;
+ draw z11--z10;
+ z12=0.1[z8,z7];
+ z13=0.1[z8,z9];
+ z14= z13 shifted z12-z8;
+ draw z12--z14;
+ draw z13--z14;
+ z15=0.2[z8,z4];
+ z16=0.1[z8,z9];
+ z17= z16 shifted z15-z8;
+ draw z15--z17;
+ draw z16--z17;
+enddef;
+
+def repplansparadroiteortho =
+ %plans paralleles et droite orthogonale
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u); z5 =(4u,1.5u);draw z4--z5;
+ z6 = (1u,1.6u);z7=(3.6u,0.4u);draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z14 = (0.8u,-1.5u);
+ z15 =(4u,-1u);
+ draw z14--z15;
+ z16 = (1u,-0.9u);
+ z17=(3.6u,-2.1u);
+ draw z16--z17;
+ label.rt(btex $d_{1}$ etex scaled echelle, z15);
+ label.rt(btex $d'_{1}$ etex scaled echelle, z17);
+ p1=z4--z5;
+ p2=z6--z7;
+ p3=z14--z15;
+ p4=z16--z17;
+ p5=z0--z1;
+ p6=z10--z11;
+ z20 = p1 intersectionpoint p2;
+ z21 = p3 intersectionpoint p4;
+ p7 = z20--z21;
+ z22 = p7 intersectionpoint p5;
+ z24 = z20 shifted (0u,1.5u);
+ z25 = z21 shifted (0u,-1.5u);
+ p8 = z21--z25;
+ z23 = p8 intersectionpoint p6;
+ draw z24--z20;
+ draw z20--z22 dashed evenly;
+ draw z22--z21;
+ draw z21--z23
+ dashed evenly;
+ draw z23--z25;
+ label.rt(btex $\Delta$ etex scaled echelle, z24);
+ z30=0.2[z20,z4];
+ z31=0.1[z20,z24];
+ z32 = z31 shifted z30-z20;
+ draw z32--z30;
+ draw z32--z31;
+ z40=0.2[z21,z14];
+ z41=0.1[z21,z22];
+ z42 = z41 shifted z40-z21;
+ draw z42--z40;
+ draw z42--z41;
+ z50=0.1[z20,z7];
+ z51=0.1[z20,z24];
+ z52 = z51 shifted z50-z20;
+ draw z52--z50;
+ draw z52--z51;
+ z60=0.1[z21,z17];
+ z61=0.1[z21,z22];
+ z62 = z61 shifted z60-z21;
+ draw z62--z60;
+ draw z62--z61;
+enddef;
+
+def repdrtoitesorthoplanspara =
+ %droites orthogonales a deux plans paralleles
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z20 = (2u,1u);
+ z26 = z20 shifted (0u,-2.5u);
+ z21 = z20 shifted (0u,2u);
+ z22 = z20 shifted (0u,-4.5u);
+ p1 = z21--z22;
+ p2 = z0--z1;
+ p3 = z10--z11;
+ z24 = p1 intersectionpoint p2;
+ z25 = p1 intersectionpoint p3;
+ draw z21--z20;
+ draw z20--z24 dashed evenly;
+ draw z24--z26;
+ draw z26--z25 dashed evenly;
+ draw z25--z22;
+ z30 = (3u,1.5u);
+ z36 = z30 shifted (0u,-2.5u);
+ z31 = z30 shifted (0u,2u);
+ z32 = z30 shifted (0u,-4.5u);
+ p11 = z31--z32;
+ p12 = z0--z1;
+ p13 = z10--z11;
+ z34 = p11 intersectionpoint p12;
+ z35 = p11 intersectionpoint p13;
+ draw z31--z30;
+ draw z30--z34 dashed evenly;
+ draw z34--z36;
+ draw z36--z35 dashed evenly;
+ draw z35--z32;
+ z40=0.1[z20,z30];
+ z41=0.1[z20,z21];
+ z42 = z41 shifted z40-z20;
+ draw z42--z40;
+ draw z42--z41;
+ z50=0.1[z30,z20];
+ z51=0.1[z30,z31];
+ z52 = z51 shifted z50-z30;
+ draw z52--z50;
+ draw z52--z51;
+ z60=0.1[z26,z36];
+ z61=0.1[z26,z24];
+ z62 = z61 shifted z60-z26;
+ draw z62--z60;
+ draw z62--z61;
+ z70=0.1[z36,z26];
+ z71=0.2[z36,z34];
+ z72 = z71 shifted z70-z36;
+ draw z72--z70;
+ draw z72--z71;
+ draw z20--z30;
+ draw z26--z36;
+enddef;
+
+def repplansperp =
+ %intersection de deux plans perpendiculaires
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z5 = 0.5[z0,z1];
+ z6 = z5 transformed S;
+ z7 = z5 shifted (0u,-2.5u);
+ z8 = z7 transformed S;
+ z5 = 0.5[z9,z7];
+ z10= z9 transformed S;
+ draw z5--z6;
+ draw z9--z7;
+ draw z9--z10;
+ draw z10--z6;
+ draw z6--z3;
+ draw z7--z8;
+ p1 = z2--z6;
+ q1= z5--z9;
+ z11 = p1 intersectionpoint q1;
+ draw z11--z6 dashed evenly;
+ draw z2--z11;
+ p2 = z6--z8;
+ q2= z5--z1;
+ z12 = p2 intersectionpoint q2;
+ draw z12--z6 dashed evenly;
+ draw z8--z12;
+ label.rt(btex $d$ etex scaled echelle, 0.6[z5,z6]);
+ z13=0.5[z5,z6];
+ z14 = z13 shifted (0u,2u);
+ z15 = z13 shifted (0u,-2u);
+ p3 = z0--z1;
+ q3 = z13--z15;
+ z16 = p3 intersectionpoint q3;
+ draw z14--z13;
+ draw z13--z16 dashed evenly;
+ draw z16--z15;
+ z20=0.2[z13,z6];
+ z21=0.2[z13,z14];
+ z22 = z21 shifted z20-z13;
+ draw z22--z20;
+ draw z22--z21;
+ z17 = z13 shifted 0.8(z1-z5);
+ z18 = z13 shifted 0.8(z0-z5);
+ p4 = z13--z18;
+ z19 = q1 intersectionpoint p4;
+ draw z18--z19;
+ draw z19--z13 dashed evenly;
+ draw z13--z17;
+ z30=0.1[z13,z18];z31=0.1[z13,z14];
+ z32 = z31 shifted z30-z13;
+ draw z32--z30;
+ draw z32--z31;
+enddef;
+
+def repplansperpplan =
+ %plans perpendiculaires a un meme plan
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(5u,0u); r=(1u,2.3u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4= 1/4[z0,z1];
+ z5= 3/4[z0,z1];
+ z6= 1/2[z4,z5];
+ z7 = z6 shifted (0u,1u);
+ draw z4--z7;
+ draw z5--z7;
+ z8 = z4 shifted (0u,2u);
+ z9 = z5 shifted (0u,2u);
+ z10 = z7 shifted (0u,2u);
+ z4=0.5[z8,z11];
+ z5=0.5[z12,z9];
+ z7=0.5[z13,z10];
+ draw z8--z11;
+ draw z8--z10;
+ draw z12--z9;
+ draw z9--z10;
+ draw z7--z10;
+ draw z7--z6 dashed evenly;
+ draw z6--z13;
+ draw z11--z13;
+ draw z13--z12;
+ p1 = z2--z3;
+ q1 = z8--z10;
+ q2=z9--z10;
+ z14= p1 intersectionpoint q1;
+ z15= p1 intersectionpoint q2;
+ draw z2--z14;
+ draw z14--z15 dashed evenly;
+ draw z15--z3;
+ z20=0.1[z7,z10];
+ z21=0.2[z7,z4];
+ z22 = z21 shifted z20-z7;
+ draw z22--z20;
+ draw z22--z21;
+ z30=0.1[z7,z10];
+ z31=0.2[z7,z5];
+ z32 = z31 shifted z30-z7;
+ draw z32--z30;
+ draw z32--z31;
+enddef; \ No newline at end of file