diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp new file mode 100644 index 00000000000..c5f62220794 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp @@ -0,0 +1,105 @@ +% magneticflux.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{palatino,mathpazo} +\begin{document} +etex + +TDAtiplen := 0.1; % tdarrow +TDAhalftipbase := 0.04; % Three-Dimensional +TDAhalfthick := 0.02; % Arrow +ForePen := pencircle scaled 10pt; +BackPen := pencircle scaled 6pt; + +numeric ranga; +ranga = 30+uniformdeviate(120); + +def ellip( expr TheVal ) = + ( (cosd(360*TheVal),sind(360*TheVal)/sind(ranga),0) ) +enddef; + +beginfig(2); + f := ( 4, 1, 2 ); + Spread := 90; + pen blackpen, whitepen; + numeric majoraxe, i, j, gridstepn, gridstep, gridstart, halen, rang; + numeric ellfocus, totdist, marginl; + path espira, partes, covere; + color avec, midvec; + halen = 1; + marginl = 0.14; + rang = 45+30*floor(uniformdeviate(3.9)); + show rang; + avec = (0,cosd(rang),sind(rang))*halen; + blackpen = pencircle scaled 5pt; + whitepen = pencircle scaled 3pt; + majoraxe = 1.2 + uniformdeviate(0.8); + ellfocus = majoraxe +-+ 1; + gridstepn= 15; + gridstep = 2*majoraxe/(gridstepn-1); + gridstart= 0.5*gridstepn*gridstep; + espira = ellipticpath( black, -red, -green*majoraxe ); + draw espira withpen blackpen; + undraw espira withpen whitepen; + for j=-1 step gridstep until 1: + for i=-gridstart step gridstep until gridstart: + midvec := (j,i,0); + totdist := conorm(midvec-(0,-ellfocus,0))+conorm(midvec-(0,ellfocus,0)); + if 2*majoraxe-marginl > totdist: + tdarrow( midvec, midvec+avec ); +% draw rp(midvec) withpen whitepen; + fi; + endfor; + endfor; + partes = subpath (10.3,25.6) of espira; + covere = subpath (10,26) of espira; + draw partes withpen blackpen; + undraw covere withpen whitepen; +endfig; + +beginfig(1); + f := ( 4, 1.9, 1.22 ); + Spread := 90; + numeric nodc, lsc; + nodc = 10; + lsc = 2.4; + closedline( true, 200, 0.5, 1.75 )( ellip ); + numeric i, j, circlesize, polar, phi; + color currpos, ini, fin, avec; + string comm; + avec = (0,cosd(ranga),sind(ranga)); + circlesize = 1.86/nodc; + for i=0.93 step -circlesize until 0.4*circlesize: + polar := floor(6.28318*i/circlesize); + for j=1 upto polar: + phi := 360*j/polar; + currpos := i*(cosd(phi),sind(phi)/sind(ranga),0); + comm:="tdarrow(" + & cstr( currpos ) + & "," + & cstr( currpos + avec ) + & ");"; + getready( comm, currpos ); + endfor; + endfor; + doitnow; + pickup pencircle scaled 2pt; + drawarrow rp((0,1.07/sind(ranga),0))--rp((0,2.47,0)); + drawarrow rp((1.07,0,0))--rp((1.67,0,0)); + angline((0,2.37,0),(0,0.93/sind(ranga),0)+avec,(0,0.93/sind(ranga),0), + 0.3, btex $\alpha$ etex scaled lsc, urt); + label.bot( btex $x$ etex scaled lsc, rp((1.67,0,0)) ); + label.bot( btex $y$ etex scaled lsc, rp((0,2.47,0)) ); +endfig; + + +verbatimtex +\end{document} +etex + +end. |