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