summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp313
1 files changed, 313 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp b/Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp
new file mode 100644
index 00000000000..4d9d2f1f163
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/featpost/example/planpln4.mp
@@ -0,0 +1,313 @@
+% planplnfour.mp
+% L. Nobre G.
+% 2007
+
+input featpost3Dplus2D;
+
+% Only planifications
+
+% truefyepsmode; prologues:=1;
+
+% filenametemplate "%j%3c.ps";
+
+beginfig(3); % plnflextrue
+ numeric are[];
+ are0 = arestaref;
+ are1 = 2*are0;
+ are2 = 11*are0/5;
+ are3 = 12*are0/5;
+ are4 = 17*are0/5;
+ z0 = are4*right/2;
+ z1 = are4*left/2;
+ z2 = radialcross( z0, are3, z1, are3, true);
+ z3 = radialcross( z2, are0, z0, are1, true);
+ z4 = radialcross( z1, are1, z2, are0, true);
+ z5 = radialcross( z1, are1, z4, are2, true);
+ z6 = radialcross( z1, are3, z5, are0, false);
+ z7 = radialcross( z5, are3, z4, are3, true);
+ z8 = radialcross( z5, are0, z7, are1, true);
+ z9 = radialcross( z4, are0, z7, are1, true);
+ z10 = radialcross( z9, are0, z7, are3, true);
+ z11 = radialcross( z9, are3, z10, are1, false);
+ z12 = radialcross( z4, are3, z2, are1, true);
+ pickup grossa;
+ draw z0--z3--z2;
+ draw z4--z9--z11--z10--z7--z8--z5--z6--z1;
+ path opti, opto, intersec, outercut;
+ opti = z4--z12;
+ opto = z12--z2;
+ intersec = z9--z11;
+ outercut = z10--z11;
+ draw opti cutafter intersec;
+ draw opto cutbefore intersec;
+ pickup usual;
+ draw opti cutbefore outercut dashed pequeno;
+ draw opto cutafter outercut dashed pequeno;
+ draw opti cutbefore intersec cutafter outercut dashed pequeno;
+ draw opto cutbefore outercut cutafter intersec dashed pequeno;
+ draw origin--z0;
+ draw z1--z2;
+ draw z1--z5;
+ draw z5--z7;
+ draw z7--z9;
+ draw z9--z10;
+ pickup fina;
+ draw z0--z2--z4;
+ draw z1--z4--z5;
+ draw z7--z4;
+
+ picture tile;
+ tile = currentpicture;
+ draw tile rotated 180;
+ terminar( 1, -26 );
+endfig;
+
+beginfig(2); % plnflex 40
+ pair startpos;
+ numeric are[];
+ picture temporpic;
+ are2 = arestaref/2;
+ are1 = 2*are2;
+ are0 = sqrt(6)*are2;
+ are3 = sqrt(3)*are1;
+ are4 = are3/2;
+ startpos = are4*dir(60);
+ z1 = startpos;
+ z2 = z1 + are3*dir(-120);
+ z3 = z2 + are1*up;
+ z4 = z3 + are2*up;
+ z5 = z4 + are4*up;
+ z6 = z4 + are0*dir(45);
+ pickup grossa;
+ draw z5--z6--z1;
+ pickup fina;
+ draw z4--z6;
+ draw z2--z3--z1;
+ pickup usual;
+ draw z2--z1--z4;
+ draw z3--z4--z5;
+ draw currentpicture reflectedabout(z2,z3);
+ draw currentpicture rotated 180;
+ temporpic = currentpicture;
+ draw temporpic shifted (are3*left);
+ draw temporpic shifted (are3*right);
+ pickup grossa;
+ draw (z2+are3*left)--(z1+2*are3*left);
+ draw (z1+are3*right)--(z3+2*are3*right)--(z2+2*are3*right);
+ terminar( 1.52, 90 );
+endfig;
+
+beginfig(4); % plnarcurv1
+ pair startpos;
+ numeric are[], basefactor;
+ basefactor = sqrt(2-sqrt(3));
+ are2 = arestaref;
+ are1 = are2/basefactor;
+ startpos = (left+down)*are2/2;
+ z0 = startpos + are2*dir(90);
+ z1 = z0 + are2*right;
+ z2 = z1 + are1*dir(-15);
+ z3 = z2 + are1*dir(135);
+ z4 = z3 + are2*dir(30);
+ z5 = z4 + are2*dir(120);
+ z6 = z5 + are2*dir(-150);
+ z7 = z6 + are1*dir(105);
+ z8 = z7 + are1*dir(-105);
+ z9 = z8 + are2*dir(150);
+ z10= z9 + are2*dir(-120);
+ z11=z10 + are2*dir(-30);
+ z12=z11 + are1*dir(-135);
+ pickup grossa;
+ draw z2{z4-z2}...(0.5[z4,z5])
+ ...{z7-z5}z7{z9-z7}
+ ...(0.5[z9,z10])
+ ...{z12-z10}z12;
+ pickup usual;
+ draw z2{z3-z2}...(0.5[z3,z6])...{z7-z6}z7;
+ draw z7{z8-z7}...(0.5[z8,z11])...{z12-z11}z12;
+ draw z12{z0-z12}...(0.5[z0,z1])...{z2-z1}z2;
+ draw currentpicture rotated 180;
+ terminar( 2.5*basefactor, 90-angle(z4-z5) );
+endfig;
+
+beginfig(5); % plnarcurv2
+ numeric are;
+ are = arestaref;
+ z0 = origin;
+ z1 = z0 + are*right;
+ z2 = z0 + 2*are*up;
+ z3 = z0 + 2*are*left;
+ z4 = z3 + 2*are*down;
+ z5 = z0 + 2*are*down;
+ z6 = z0 + 2*are*right;
+ z7 = z0 + are*down;
+ z8 = z0 + are*left;
+ pickup grossa;
+ draw z0--z6--z7--z5--z4--z3--z8--z2--z1;
+ pickup usual;
+ draw z2--z7--z4--z8--z0;
+ draw ((fullcircle scaled (2*are)) cutbefore (z0--z3))
+ cutafter (z0--z5);
+ desvec( 0.5*(z8+z7) );
+ terminar( 2.15, 45 );
+endfig;
+
+beginfig(7); % hexagonal base tower made in 2006
+ numeric are, len;
+ picture tmppic;
+ are = arestaref;
+ len = are/sqrt(2-sqrt(3));
+ z0 = origin;
+ z1 = z0 + are*dir(60);
+ z2 = z1 + are*dir(15);
+ z3 = z1 + len*up;
+ z4 = z3 + are*dir(120);
+ z5 = z3 + are*left;
+ z6 = z1 + are*left;
+ z7 = z6 + are*dir(165);
+ z8 = z6 + len*dir(165);
+ z9 = z0 + are*left;
+ pickup grossa;
+ draw z1--z2--z3--z4--z5--z7--z6--z8--z9;
+ pickup usual;
+ draw z9--z6--z5--z3--z1--z6;
+ tmppic = currentpicture;
+ draw tmppic rotated 120;
+ draw tmppic rotated -120;
+ desvec( 0.127*z4 );
+ terminar( 1.08, 75 );
+endfig;
+
+beginfig(8); % penta-pack of pyramids made in 2006
+ numeric are;
+ picture tmppic;
+ are = arestaref;
+ z0 = origin;
+ z1 = z0 + are*dir(45)/sqrt(2);
+ z2 = z1 + are*dir(45)*sqrt(2);
+ z3 = z2 + are*dir(120);
+ z4 = z1 + are*up;
+ z5 = z4 + are*dir(120);
+ z6 = z4 + are*left;
+ z7 = z6 + are*dir(120);
+ z8 = z6 + are*left;
+ z9 = z1 + are*left;
+ pickup grossa;
+ draw z2--z3--z4--z5--z6--z7--z8;
+ pickup usual;
+ draw z2--z8--z6--z9--z1--z4;
+ pickup fina;
+ draw z1--z2;
+ tmppic = currentpicture;
+ draw tmppic rotated 90;
+ draw tmppic rotated 180;
+ draw tmppic rotated -90;
+ terminar( 1.42, 0 );
+endfig;
+
+beginfig(6); % Cube without one vertex, made in 2007.
+ numeric are;
+ picture tmppic;
+ are = arestaref;
+ z0 = origin;
+ z1 = z0 + are*dir(60)*sqrt(2);
+ z2 = z1 + are*dir(135);
+ z3 = z2 - are*dir(45);
+ z4 = z0 + are*up*sqrt(6);
+ z5 = z4 - are*dir(15);
+ z6 = z5 + are*dir(105);
+ z9 = z5 - 2*are*dir(15);
+ z8 = z9 + 2*are*dir(105);
+ z7 = z8 + are*dir(15);
+ z10= z9 + 2*are*dir(-75);
+ z11=z10 + are*dir(15);
+ z12=z10 + are*dir(-75);
+ pickup grossa;
+ draw z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z12--z11;
+ pickup usual;
+ draw z1--z3--z5--z9;
+ draw z10--z11--z3;
+ tmppic = currentpicture;
+ draw tmppic rotated 120;
+ draw tmppic rotated -120;
+ desvec( 1.09*are*right );
+ terminar( 0.87, -9.5 );
+endfig;
+
+beginfig(1); % Thing with curved edges, made in 2007.
+ path arccircle, cutbp, cutap, arcbelow;
+ numeric conr, cond, u, v;
+ u = arestaref;
+ conr = 0.60588;
+ cond = 0.34218;
+ v = 0.9003u;
+ cutbp = origin--(0.5,cond);
+ cutap = origin--(-0.5,cond);
+ arccircle = ((halfcircle cutbefore cutbp) cutafter cutap) scaled (4*u*conr);
+ arcbelow = arccircle rotated 180;
+ z1 = (-u,0);
+ z2 = (-u,v);
+ z3 = (-u-2v,v);
+ z4 = (-u-2v,3v);
+ z5 = (-u,3v);
+ z6 = (-u,5v);
+ z7 = (u,5v);
+ z8 = (u+2v,5v);
+ z9 = (u+2v,0);
+ z10 = (u+2v,v);
+ z11 = (u+2v,3v);
+ z12 = (u,3v);
+ z13 = (u,v);
+ z14 = (u,0);
+ z15 = (-u-2v,0);
+ z16 = (0,5v+2cond*u);
+ z17 = (0,3v-2cond*u);
+ z18 = (0,v+2cond*u);
+ pickup grossa;
+ draw z2--z3;
+ draw z10--z13;
+ draw z11--z12;
+ draw z15--z4--z5--z6;
+ draw z7--z8--z9;
+ draw arcbelow shifted z16;
+ pickup usual;
+ draw z1--z5;
+ draw z7--z14;
+ draw arccircle shifted z17;
+ draw arcbelow shifted z18;
+ draw currentpicture rotated 180;
+ terminar( 1, 0 );
+endfig;
+
+beginfig(9);
+ numeric u, v;
+ u = arestaref;
+ v = 0.5*sqrt(3)*u;
+ z1 = (0.5u,0);
+ z2 = (-0.5u,0);
+ z3 = (0.5u+v,0.5u);
+ z4 = (0.5u,u);
+ z5 = (0.5u+v,1.5u);
+ z6 = (0.5u,2u);
+ z7 = (-0.5u,2u);
+ z8 = (-0.5u,u);
+ z9 = (-0.5u-v,1.5u);
+ z10 = (-0.5u-2v,u);
+ z11 = (-0.5u-v,0.5u);
+ z12 = (-0.5u-2v,0);
+ z13 = (-0.5u-v,-0.5u);
+ pickup grossa;
+ draw z2--z13--z12--z10--z7--z6--z5--z3--z1;
+ draw z4--z8--z7;
+ draw z11--z9;
+ pickup fina;
+ draw z2--z11;
+ pickup usual;
+ draw z11--z12;
+ draw z6--z1--z2--z8--z9;
+ draw z4--z5;
+ draw currentpicture rotated 180;
+ terminar( 1.75, angle((v,1.5u))+90 );
+endfig;
+
+end;