summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp327
1 files changed, 327 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp b/Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp
new file mode 100644
index 00000000000..02da18adab5
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp
@@ -0,0 +1,327 @@
+% planplnthree.mp
+% L. Nobre G.
+% 2006
+
+input featpost3Dplus2D;
+
+% Only planifications
+
+% truefyepsmode;
+
+% filenametemplate "%j%3c.ps";
+
+beginfig(9); % plntoro
+% makearestarefathree;
+ numeric are[];
+ are0 = arestaref;
+ are1 = (sqrt(3)-1)*are0;
+ z40 = are0*dir(-30)/2;
+ z37 = are0*dir(150)/2;
+ z22 = z40 + are0*dir(30);
+ z21 = z22 + are0*dir(-30);
+ z41 = z40 + are0*dir(90);
+ z31 = z37 + are0*dir(90);
+ z5 = z37 + are0*dir(-150);
+ z4 = z5 + are0*dir(-150);
+ z3 = z4 + are0*dir(90);
+ z2 = z3 + are0*dir(90);
+ z36 = z5 + are0*dir(90);
+ z32 = z36 + are0*dir(90);
+ z24 = z41 + are0*dir(90);
+ z23 = z22 + are0*dir(90);
+ z28 = radialcross( z31, are0, z24, are1, true);
+ z29 = radialcross( z28, are0, z31, are0, true);
+ z26 = radialcross( z28, are0, z24, are0, true);
+ z25 = radialcross( z26, are0, z24, are0, false);
+ z27 = radialcross( z28, are0, z26, are0, true);
+ z35 = radialcross( z2, are0, z32, are1, true);
+ z1 = radialcross( z2, are0, z35, are0, true);
+ z33 = radialcross( z35, are0, z32, are0, true);
+ z30 = radialcross( z33, are0, z32, are0, false);
+ z34 = radialcross( z35, are0, z33, are0, true);
+ pickup grossa;
+ draw z22--z23--z24--z25--z26--z27--z28--z29--z31--z37--z31--z32;
+ draw z33--z34--z35--z1--z2--z3;
+
+ path opti, opto, intersec;
+ opti = z32--z30;
+ opto = z30--z33;
+ intersec = z28--z29--z31;
+ draw opti cutafter intersec;
+ draw opto cutbefore intersec;
+ pickup usual;
+ draw opti cutbefore intersec dashed pequeno;
+ draw opto cutafter intersec dashed pequeno;
+ draw z35--z32--z33;
+ draw z26--z24--z28;
+ draw z32--z2--z37;
+ draw z3--z24--z41--z23;
+ draw z31--z22;
+ draw z5--z41;
+ draw z32--z36;
+ draw origin--z40;
+ pickup fina;
+ draw z2--z35--z33;
+ draw z26--z28--z31;
+ draw z36--z5;
+ draw z41--z40;
+ picture tile;
+ tile = currentpicture;
+ draw tile rotated 180;
+ pickup grossa;
+ draw z3--z4--z5;
+ draw z22--z21;
+ pickup usual;
+ draw z3--z5;
+ terminar( 1.35, 90-angle(z1-z4)+5 );
+endfig;
+
+beginfig(6); % plnhiper
+ pair px[]y[], startpos;
+ numeric are[], i, j;
+ are1 = arestaref;
+ are2 = sqrt(3)*are1;
+ startpos = are1*4*left+are2*2*down;
+ for i=0 upto 8:
+ for j=0 upto 4:
+ px[i]y[j] := startpos+are1*i*right+are2*j*up;
+ endfor;
+ endfor;
+ pickup grossa;
+ draw px1y1--px3y1--px3y0--px4y1--px5y1--px5y0--px6y1--px7y1--
+ px7y0--px8y1--px7y2--px7y3--px5y3--px5y4--px4y3--px3y3--
+ px3y4--px2y3--px1y3--px1y4--px0y3--px1y2--cycle;
+ pickup fina;
+ draw px1y2--px7y2;
+ for i=1 step 2 until 5:
+ pickup usual;
+ draw px[i]y2--px[i+1]y3--px[i+2]y2--px[i+1]y1--cycle;
+ pickup fina;
+ draw px[i]y1--px[i]y3;
+ draw px[i+2]y1--px[i+2]y3;
+ endfor;
+ pickup usual;
+ draw px1y1--px8y1;
+ draw px0y3--px7y3;
+ terminar( 1, 90-angle(px3y0-px1y1) );
+endfig;
+
+beginfig(2); % plnmercedes
+ 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--z5--z7--z9--z10--z12;
+ pickup fina;
+ draw startpos--z0;
+ draw z3--z4;
+ draw z5--z6;
+ draw z8--z9;
+ draw z10--z11;
+ pickup usual;
+ draw z0--z1--z2--z3--z1;
+ draw z8--z11--z12--z0--z11;
+ draw z3--z6--z7--z8--z6;
+ draw currentpicture rotated 180;
+ terminar( 2.5*basefactor, 90-angle(z4-z5) );
+endfig;
+
+beginfig(5); % plnacent
+ pair px[]y[], startpos;
+ numeric aresta, i, j;
+ aresta = arestaref;
+ startpos = aresta*(1.5*dir(180)+dir(-120));
+ for i=0 upto 3:
+ for j=0 upto 3-i:
+ px[i]y[j] := startpos+aresta*(i*dir(0)+j*dir(60));
+ endfor;
+ endfor;
+ pickup grossa;
+ draw px2y0--px0y0--px0y3--px1y2;
+ pickup fina;
+ draw px1y1--px2y1;
+ pickup usual;
+ draw px2y0--px0y2--px1y2--px1y0--px0y1--px1y1;
+ draw currentpicture rotated 180;
+ terminar( 2.5, 90-angle(px0y1-px0y3) );
+endfig;
+
+beginfig(7); % plndisf
+ pair px[]y[], startpos;
+ numeric aresta, i, j;
+ aresta = arestaref;
+ startpos = aresta*(1.5*dir(-150)+dir(150));
+ for i=0 upto 3:
+ for j=0 upto 2:
+ px[i]y[j] := startpos+aresta*(i*dir(-30)+j*up);
+ endfor;
+ endfor;
+ pickup grossa;
+ draw px3y1--px3y0--px0y0--px0y2--px2y2;
+ pickup fina;
+ draw px0y0--px1y1--px2y1--px3y2;
+ pickup usual;
+ draw px2y1--px3y1--px2y0--px2y2--px1y1--px0y1--px1y2--px1y0--px2y1;
+ draw currentpicture rotated 180;
+ terminar( 1.8, 90 );
+endfig;
+
+beginfig(1); % plnicosa
+ pair px[]y[], startpos;
+ numeric aresta, i, j;
+ aresta = arestaref;
+ startpos = aresta*(1.5*left+2*dir(-120));
+ for i=0 upto 4:
+ for j=0 upto 3:
+ px[i]y[j] := startpos+aresta*(i*right+j*dir(120));
+ endfor;
+ endfor;
+ pickup grossa;
+ draw px4y1--px3y0--px0y0--px0y2--px1y3--px3y3;
+ pickup fina;
+ draw px4y3--px3y2--px2y2--px2y3;
+ draw px3y0--px3y1;
+ draw px2y0--px2y1--px1y1--px0y0;
+ draw px0y1--px1y2--px1y3;
+ pickup usual;
+ draw px4y3--px3y3--px3y1--px2y0;
+ draw px4y2--px3y2--px1y0--px1y2;
+ draw px3y1--px2y1--px2y2--px1y1--px0y1;
+ draw px3y3--px2y2--px1y2;
+ draw px2y3--px1y2--px0y2;
+ draw currentpicture rotated 180;
+ terminar( 1.34, 90-angle(px3y1-px0y0) );
+endfig;
+
+beginfig(3); % plnking
+ pair startpos;
+ numeric are[];
+ are1 = arestaref;
+ are2 = are1/2;
+ are3 = sqrt(3)*are1;
+ are4 = 2*are1;
+ startpos = origin;
+ z0 = startpos;
+ z1 = z0 + are2*right;
+ z2 = z1 + are4*right;
+ z3 = z2 + are1*right;
+ z4 = z3 + are1*dir(120);
+ z5 = z4 + are1*dir(120);
+ z6 = z5 + are1*dir(-120);
+ z7 = z6 + are1*dir(120);
+ z8 = z7 + are1*dir(120);
+ z9 = z8 + are1*dir(-120);
+ z10= z9 + are1*dir(-60);
+ z11= z10+ are1*left;
+ z12= z11+ are3*up;
+ pickup grossa;
+ draw z3--z4--z5--z7--z8--z12;
+ pickup fina;
+ draw z12--z10;
+ draw z8--z11;
+ draw z5--z6;
+ draw z1--z2;
+ pickup usual;
+ draw z0--z1--z11--z12;
+ draw z1--z7--z9;
+ draw z7--z2--z3;
+ draw z2--z4--z11;
+ draw currentpicture reflectedabout(z11,z12);
+ draw currentpicture reflectedabout(z0,z3);
+ terminar( 1.27, 90 );
+endfig;
+
+beginfig(0); % plnbola
+% makearestarefathree;
+ pair startpos;
+ numeric are[];
+ picture temporpic;
+ are1 = arestaref;
+ are2 = arestaref/2;
+ are3 = sqrt(3)*are1;
+ are4 = 2*sqrt(3)*are1;
+ startpos = origin;
+ z1 = startpos + are2*dir(30);
+ z2 = z1 + are1*dir(-30);
+ z9 = z2 + are1*down;
+ z3 = z9 + are1*dir(-150);
+ z4 = z3 + are1*dir(-150);
+ z5 = z4 + are1*dir(150);
+ z6 = z5 + are1*dir(30);
+ z7 = z6 + are1*dir(30);
+ z8 = z7 + are1*dir(150);
+ pickup grossa;
+ draw z7--z3--z4--z5;
+ pickup fina;
+ draw z5--z6--z8--z1--z2--z9--z3--z6;
+ draw currentpicture rotated 180;
+ temporpic = currentpicture;
+ draw temporpic shifted (are3*left);
+ draw temporpic shifted (are4*left);
+ pickup grossa;
+ draw (z5+are4*left)--(z1+3*are3*left+are1*up)
+ --(z1+3*are3*left+are1*(up+dir(30)));
+ draw currentpicture rotated 180;
+ terminar( 0.97, 90 );
+endfig;
+
+beginfig(4); % plnescava
+% makearestarefathree;
+ pair px[]y[], startpos;
+ numeric aresta, i, j;
+ aresta = arestaref;
+ startpos = origin;
+ for i=0 upto 5:
+ for j=0 upto 6:
+ px[i]y[j] := startpos+aresta*(i*right+j*dir(60));
+ endfor;
+ endfor;
+ pickup grossa;
+ draw px5y2--px5y1--px4y1--px5y0--px3y0--px2y1--px2y2--px1y2--px0y3
+ --px0y6--px1y6--px2y5--px2y6--px4y6--px5y5;
+ pickup fina;
+ draw px0y6--px1y4--px3y3--px4y4--px3y6;
+ draw px0y3--px1y4--px3y3--px4y1--px3y0;
+ draw px2y2--px1y3;
+ draw px2y2--px2y3;
+ draw px2y2--px3y2;
+ draw px2y2--px3y1;
+ draw px2y5--px1y5;
+ draw px2y5--px2y4;
+ draw px2y5--px3y4;
+ draw px2y5--px3y5;
+ draw px5y2--px4y2;
+ draw px5y2--px4y3;
+ draw px5y2--px5y3;
+ draw px5y5--px4y5;
+ draw px4y4--((px5y3+px5y4)/2);
+ pickup usual;
+ draw px4y0--px4y6;
+ draw px3y0--px3y6;
+ draw px1y2--px1y6;
+ draw px2y1--px4y1--px0y5;
+ draw px0y3--px5y3--px2y6;
+ draw px0y4--px5y4--px3y6;
+ draw px0y6--px5y1;
+ draw currentpicture rotatedaround((px5y3+px5y4)/2,180);
+ desvec((px5y3+px5y4)/2);
+ terminar( 0.9, 81 ); %%%%%%%%%% or 60 instead of 81
+endfig;
+
+end;