diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/acoplanv.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/acoplanv.mp | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/acoplanv.mp b/Master/texmf-dist/doc/metapost/featpost/example/acoplanv.mp new file mode 100644 index 00000000000..d29cc156826 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/acoplanv.mp @@ -0,0 +1,81 @@ +% acoplanv.mp +% L. Nobre G. +% 2003 + +verbatimtex +\documentclass{article} +\usepackage{mathpazo} +\begin{document} +etex + +beginfig(1); + numeric overallang, torsionang, u, curvfact; + u = 1mm; + overallang = -22; + torsionang = 40; + curvfact = 0.6; + numeric armsize, roundray, direcstep; + armsize = 25u; + roundray = 10u; + direcstep = 2.8u; + pair restaxedir, restdir, torsaxedir, torsdir; + restaxedir = dir( 90+overallang ); + restdir = dir( overallang ); + torsaxedir = dir( 90+overallang+torsionang ); + torsdir = dir( overallang+torsionang ); + numeric leng; + pair midpos; + pickup pencircle scaled 0.5u; + + drawoptions( withcolor 0.52white ); + for i=1.5*direcstep step direcstep until roundray: + leng := roundray +-+ i; + midpos := i*restaxedir; + draw (midpos-leng*restdir)--(midpos+leng*restdir); + midpos := -i*restaxedir; + draw (midpos-leng*restdir)--(midpos+leng*restdir); + endfor; + path minuslin, plusline; + plusline = (0.5*direcstep*restaxedir-armsize*restdir)-- + (0.5*direcstep*restaxedir+armsize*restdir); + minuslin = (-0.5*direcstep*restaxedir-armsize*restdir)-- + (-0.5*direcstep*restaxedir+armsize*restdir); + draw plusline; + draw minuslin; + + drawoptions( withcolor black ); + for i=1.5*direcstep step direcstep until roundray: + leng := roundray +-+ i; + midpos := i*torsaxedir; + draw (midpos-leng*torsdir)--(midpos+leng*torsdir); + midpos := -i*torsaxedir; + draw (midpos-leng*torsdir)--(midpos+leng*torsdir); + endfor; + path minuscur, pluscurv; + numeric curvheig; + curvheig = curvfact*armsize*sind( torsionang )/cosd( torsionang ); + leng := roundray +-+ (0.5*direcstep); + minuscur = ((-curvheig-0.5*direcstep)*restaxedir-armsize*restdir){restdir}.. + (-0.5*direcstep*torsaxedir-leng*torsdir)-- + (-0.5*direcstep*torsaxedir+leng*torsdir).. + {restdir}((curvheig-0.5*direcstep)*restaxedir+armsize*restdir); + pluscurv = ((-curvheig+0.5*direcstep)*restaxedir-armsize*restdir){restdir}.. + (0.5*direcstep*torsaxedir-leng*torsdir)-- + (0.5*direcstep*torsaxedir+leng*torsdir).. + {restdir}((curvheig+0.5*direcstep)*restaxedir+armsize*restdir); + draw minuscur; + draw pluscurv; + + drawoptions( withcolor red ); + path velbase; + for i=roundray+direcstep step direcstep until armsize: + velbase := (i*restdir)--(i*restdir+curvheig*restaxedir); + drawarrow velbase cutbefore plusline cutafter minuscur; + endfor; +endfig; + +verbatimtex +\end{document} +etex + +bye; |