diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/planpln3.mp | 327 |
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; |