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