summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp319
1 files changed, 319 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp b/Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp
new file mode 100644
index 00000000000..703d172acc9
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/featpost/example/mypatent.mp
@@ -0,0 +1,319 @@
+% mypatent.mp
+% L. Nobre G.
+% IYP (2005)
+
+input featpost3Dplus2D;
+
+verbatimtex
+\documentclass[12pt]{article}
+\usepackage{courier}
+\begin{document}
+{\ttfamily
+etex
+
+vardef P@# = rp(V@#) enddef;
+
+picture pecaa, pecab, pecabe;
+
+f := 2*(14,5,10);
+Spread := 36;
+ahangle := 30;
+ahlength := 1.8mm;
+
+pen pendot, penedge, pendist;
+penedge= pencircle scaled 1pt;
+pendot = pencircle scaled 1.7pt;
+pendist= pencircle scaled 0.4pt;
+
+numeric u, marg, leves, elast;
+u = 0.1;
+marg = 16u;
+%leves = 410;
+leves = 22u;
+elast = 1u;
+
+vardef elastf( expr Ca, Cb ) = Cb + N( Cb-Ca )*elast enddef;
+
+V1 := (0,0,0);
+V2 := (0,0,4u);
+V3 := (0,16u,4u);
+V4 := (4u,16u,4u);
+V5 := (4u,16u,8u);
+V6 := (0,16u,8u);
+V7 := (0,24u,16u);
+V8 := (4u,24u,16u);
+V9 := (4u,35u,4u);
+V10:= (4u,35u,0);
+V11:= (16u,23u,0);
+V12:= (16u,23u,4u);
+V13:= (16u,0,4u);
+V14:= (16u,0,0);
+V15:= (0,43u,8u);
+V16:= (4u,43u,8u);
+V17:= (8u,8u,0);
+V18:= (4u,43u,16u);
+V19:= (0,43u,16u);
+
+beginfig(1);
+ path pat[];
+ pat1 = P3--P2--P13--P14--P11--P10--P9--P12--P13;
+ pat2 = P11--P12;
+ pat3 = P9--P4--P5--P6--P7--P8--P5;
+ numeric i;
+ pat8 = P1-- for i=-90 step 5 until 85:
+ rp(V15+(0,8u*cosd(i),8u*sind(i)))..
+ endfor P19--P7;
+ pat5 = P10-- for i=-90 step 5 until 85:
+ rp(V16+(0,8u*cosd(i),8u*sind(i)))..
+ endfor P18--P8;
+ pat6 = pat1 cutbefore pat3;
+ pair auxp,auxP;
+ auxp = point 0 of spatialhalfcircle(V15,red,8.05u,true);
+ auxP = point 0 of spatialhalfcircle(V16,red,8.05u,true);
+ pat9 = rp(V15)--auxp;
+ pat4 = pat8 cutbefore pat9;
+ pat7 = auxp--auxP;
+ drawoptions( withpen penedge );
+ for i=2 upto 7:
+ draw pat[i];
+ endfor;
+ fakehole(V15,red*4u, 2u );
+ fakehole(V17,blue*4u, 2u );
+ pecab = currentpicture;
+endfig;
+
+beginfig(2);
+ numeric i;
+ for i=1 upto 19:
+ V[i+100] := (X(V[i]),-Y(V[i]),Z(V[i]))-(0,marg,0);
+ endfor;
+ path pat[];
+ pat1 = P109--P112--P113--P102--P101--P114--P111--P110--P109--P104--P103
+ --P106--P107--P108--P105--P104;
+ pat2 = P105--P106;
+ pat3 = P113--P114;
+ pat4 = P111--P112;
+ pat5 = P102--P103;
+ pat10 = P101-- for i=-90 step 5 until 85:
+ rp(V115+(0,-8u*cosd(i),8u*sind(i)))..
+ endfor P119--P107;
+ pat6 = P110-- for i=-90 step 5 until 85:
+ rp(V116+(0,-8u*cosd(i),8u*sind(i)))..
+ endfor P118--P108;
+ pair auxp,auxP;
+ auxp = point 0 of spatialhalfcircle(V115,red,8.05u,false);
+ auxP = point 0 of spatialhalfcircle(V116,red,8.05u,false);
+ pat9 = P115--auxp;
+ pat8 = pat10 cutbefore pat9;
+ pat7 = auxp--auxP;
+ drawoptions( withpen penedge );
+ for i=1 upto 8:
+ draw pat[i];
+ endfor;
+ fakehole(V115,red*4u, 2u );
+ fakehole(V117,blue*4u, 2u );
+ pecabe = currentpicture;
+% draw pecab;
+endfig;
+
+beginfig(3);
+ V21:= (24u+marg,0,0);
+ V22:= (X(V21),Y(V115)+16u,0);
+ V23:= (X(V21),Y(V15)-16u,0);
+ V24:= (X(V21),Y(V115),0);
+ V25:= (X(V21),Y(V15),0);
+ V26:= (X(V21),Y(V115),4u);
+ V27:= (X(V21),Y(V15),4u);
+ V28:= (X(V21),Y(V115)+16u,4u);
+ V29:= (X(V21),Y(V15)-16u,4u);
+ path pat[];
+ pat1 = for i=-90 step 2 until 90:
+ rp(V22+(2u*sind(i),-2u*cosd(i),0))...
+ endfor
+ for i=-90 step 2 until 90:
+ rp(V23+(2u*sind(-i),2u*cosd(i),0))...
+ endfor
+ cycle;
+ pat2 = for i=-90 step 2 until 90:
+ rp(V28+(2u*sind(i),-2u*cosd(i),0))...
+ endfor
+ for i=-90 step 2 until 90:
+ rp(V29+(2u*sind(-i),2u*cosd(i),0))...
+ endfor
+ cycle;
+ pat3 = for i=-90 step 2 until 90:
+ rp(V24+(8u*sind(i),-8u*cosd(i),0))...
+ endfor
+ for i=-90 step 2 until 90:
+ rp(V25+(8u*sind(-i),8u*cosd(i),0))...
+ endfor
+ cycle;
+ pat4 = for i=-90 step 2 until 90:
+ rp(V26+(8u*sind(i),-8u*cosd(i),0))...
+ endfor
+ for i=-90 step 2 until 90:
+ rp(V27+(8u*sind(-i),8u*cosd(i),0))...
+ endfor
+ cycle;
+ pair auxp, auxP, auxm, auxM;
+ auxp = point 0 of spatialhalfcircle(V24,blue,8.05u,true);
+ auxP = point 0 of spatialhalfcircle(V26,blue,8.05u,true);
+ auxm = point 0 of spatialhalfcircle(V25,blue,8.05u,false);
+ auxM = point 0 of spatialhalfcircle(V27,blue,8.05u,false);
+ pat5 = P24--auxp;
+ pat6 = P25--auxm;
+ pat7 = pat3 cutbefore pat5 cutafter pat6;
+ pat8 = auxp--auxP;
+ pat9 = auxm--auxM;
+ drawoptions( withpen penedge );
+% draw pat1;
+ draw pat2;
+ draw pat7;
+ draw pat4;
+ draw pat8;
+ draw pat9;
+ fakehole(V24,blue*4u, 2u );
+ fakehole(V25,blue*4u, 2u );
+ pecaa = currentpicture;
+% draw pecab;
+% draw pecabe;
+endfig;
+
+beginfig(4);
+ V31:= V26-(5u,0,0);
+ V32:= 0.25*(V105+V106+V107+V108);
+ V33:= 0.25*(V5+V6+V7+V8);
+ pair paa, pab, pabe, angs, pn[];
+ numeric anxy, angz;
+ color veca, vecb, auxc, vecc;
+ angs = getanglepair( f-viewcentr );
+ anxy = xpart angs;
+ angz = ypart angs;
+ vecb = eulerrotation( anxy, angz+85.5, 0, red );
+ veca = eulerrotation( anxy, angz+83.5, 0, red );
+ vecc = eulerrotation( anxy, angz+93, 0, red );
+ drawoptions( withpen pendist );
+ pn2 = rp( lineintersectplan( V26, blue, f, vecb ) );
+ draw P26--pn2;
+ label.top( btex 3 etex, pn2 );
+ pn3 = rp( lineintersectplan( V27, blue, f, vecc ) );
+ draw P27--pn3;
+ label.top( btex 3' etex, pn3 );
+ auxc = 0.65[V26,V27];
+ pn4 = rp( lineintersectplan( auxc, blue, f, vecb ) );
+ draw rp(auxc)--pn4;
+ label.top( btex 4 etex, pn4 );
+ pn5 = rp( lineintersectplan( V116, blue, f, vecb ) );
+ draw P116--pn5;
+ label.top( btex 5 etex, pn5 );
+ pn6 = rp( lineintersectplan( V117+(0,0,4u), blue, f, vecb ) );
+ draw rp(V117+(0,0,4u))--pn6;
+ label.top( btex 6 etex, pn6 );
+ pn7 = rp( lineintersectplan( 0.25*(V103+V104+V105+V106), blue, f, vecb ) );
+ draw rp(0.25*(V103+V104+V105+V106))--pn7;
+ label.top( btex 7 etex, pn7 );
+ pn8 = rp( lineintersectplan( 0.5*(V102+V117+(0,0,4u)), blue, f, vecb ) );
+ draw rp(0.5*(V102+V117+(0,0,4u)))--pn8;
+ label.top( btex 8 etex, pn8 );
+
+
+% paa = rp((X(V31),Y(V31),leves));
+% pab = rp((X(V33),Y(V33),leves));
+% pabe= rp((X(V32),Y(V32),leves));
+ paa = rp( lineintersectplan( V31, blue, f, veca ) );
+ pab = rp( lineintersectplan( V33, blue, f, veca ) );
+ pabe= rp( lineintersectplan( V32, blue, f, veca ) );
+ drawoptions( withpen pendot );
+ draw P31;
+ draw P32;
+ draw P33;
+ draw paa;
+ draw pab;
+ draw pabe;
+ drawoptions( withpen pendist );
+ draw P31--paa;
+ draw P32--pabe;
+ draw P33--pab;
+ label.top( btex 1 etex, paa );
+ label.top( btex 2 etex, pabe );
+ label.top( btex 2' etex, pab );
+% draw pecaa;
+% draw pecab;
+% draw pecabe;
+ V34:= V26+(marg,0,0);
+ V35:= V27+(marg,0,0);
+ V36:= elastf(V26,V34 );
+ V37:= elastf( V27,V35 );
+ V38:= V27+(8u,0,0);
+ V39:= V25+(8u,0,0);
+ V40:= V27-(8u,0,0);
+ V41:= V38+(0,marg,0);
+ V42:= V39+(0,marg,0);
+ V43:= V40+(0,marg,0);
+ V44:= elastf( V38,V41 );
+ V45:= elastf( V39,V42 );
+ V46:= elastf( V40,V43 );
+ V47:= 0.5[V34,V35];
+ V48:= 0.5[V41,V42];
+ V49:= 0.5[V41,V43];
+ draw P26--P36;
+ draw P27--P37;
+ draw P38--P44;
+ draw P39--P45;
+ draw P40--P46;
+ drawdblarrow P34--P35;
+ drawdblarrow P41--P42;
+ drawdblarrow P41--P43;
+ label.bot( btex C etex, P47 );
+ label.rt( btex E etex, P48 );
+ label.rt( btex L etex, P49 );
+ V50:= V109 - (0,4u,0);
+ V51:= V115 + (4u,0,0);
+ V52:= V51 + (0,4u,0);
+ V53:= elastf( V109,V50 );
+ V54:= elastf( V51,V52 );
+ V55:= (8u,8u,4u);
+ V56:= (8u,8u,8u);
+ V57:= elastf( V55,V56 );
+ V58:= V15+(4u,0,0);
+ V59:= V58+(4u,0,0);
+ V60:= elastf( V58,V59 );
+
+
+ drawoptions( withpen penedge );
+ draw pecaa;
+ draw pecab;
+ draw pecabe;
+ drawoptions( withpen pendist );
+ draw P109--P53;
+ draw P51--P54;
+ drawdblarrow P50--P52;
+ label.rt( btex E etex, 0.5[P52,P50] );
+ draw P55--P57;
+ draw P58--P60;
+ drawdblarrow P56--P59;
+ label.top( btex D etex, 0.5[P56,P59] );
+
+endfig;
+
+verbatimtex
+}
+\end{document}
+etex
+
+end;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+