diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/A131.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/A131.mp | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/A131.mp b/Master/texmf-dist/doc/metapost/featpost/example/A131.mp new file mode 100644 index 00000000000..fd803cc472e --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/A131.mp @@ -0,0 +1,222 @@ +% A131.mp +% P. J. Sebastiao +% 2012 + +input featpost3Dplus2D; + +prologues:=3; + +verbatimtex + \documentclass{article} + \usepackage{amsmath,amssymb} + \begin{document} +etex + +beginfig(1); + color orig, axxc, ayyc, azzc,ngorig, ngorigb; + color field, nalfa, ngamma[], alfacnt, gammacnt, nazy, nax,nalfaz, alfacntb, gammacntb,ngammab[],nazyb, naxb; + path alfa, gamma, alfab, gammab; + numeric nalfad, theta, radius, gradius, gammang, xxsize, yysize, zzsize, thetb, radiusb; + numeric xxpos, yypos, zzpos, fieldpos, deltarad, deltapos; + numeric thetarad, thetapos, nalfapos, ngammapos,veccpos; + numeric etalpharad, etalphapos, alphapos, gammapos; + picture xxlabel, yylabel, zzlabel, fieldlabel, deltalabel, xxcalabel,yycalabel, phimlabel, phiMlabel; + picture nalfalabel, ngammalabel, etalphalabel, alphalabel; + picture gammalabel, thetalabel,vecclabel, thetalabelb, corelabel; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%ShiftV := origin; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + f := (3,4,2); + Spread := 100; + xxsize := 0.8; + xxpos := 6; + yysize := 0.8; + yypos := 6; + zzsize := 1.3; + zzpos := 4; + field := (0.56,0.3,0.5); + fieldpos := 2; + deltarad := 0.45; + deltapos := 3; + nalfad := 0.8; + theta := 25; + thetb := 18; + thetarad := 0.3; + thetapos := 2; + nalfapos := 7; + gammang := -20; + ngammapos := 4; + etalpharad := 0.4; + etalphapos := 4; + alphapos := 6; + gammapos := 6; + veccpos := 3; + + xxcalabel = btex $x_{\mbox{\protect \scriptsize layer}}$ etex; + yycalabel = btex $y_{\mbox{\protect \scriptsize layer}}$ etex; + xxlabel = btex $x_{\mbox{\protect \scriptsize} M}$ etex; + yylabel = btex $y_{\mbox{\protect \scriptsize M}}$ etex; + zzlabel = btex $z_{\mbox{\protect \scriptsize M}}$ etex; + corelabel = btex $\mbox{core}$ etex; + deltalabel = btex $\beta$ etex; + fieldlabel = btex $\mathbf{n}$ etex; + thetalabel = btex $\theta_1$ etex; + thetalabelb = btex $\theta_2$ etex; + nalfalabel = btex $\mathbf{n}_\alpha$ etex; + ngammalabel = btex $\mathbf{ch}$ etex; + etalphalabel= btex $\eta_\alpha$ etex; + alphalabel = btex $\alpha$ etex; + phimlabel = btex $-\phi_{\mbox{\protect \scriptsize 0}}/2$ etex; + phiMlabel = btex $\phi_{\mbox{\protect \scriptsize 0}}/2$ etex; + gammalabel = btex $\gamma$ etex; + vecclabel = btex $\mathbf{c}$ etex; + orig = (0,0,0); + axxc = (xxsize,0,0); + ayyc = (0,yysize,0); + azzc = (0,0,zzsize); + nalfa = (-nalfad*sind(theta)*cosd(90),nalfad*sind(theta)*sind(90),nalfad*cosd(theta)); + nalfaz = (-nalfad*sind(thetb)*cosd(90),nalfad*sind(thetb)*sind(90),-nalfad*cosd(thetb)); + alfacnt = (0,0,nalfad*cosd(theta)); + alfacntb = (0,0,-nalfad*cosd(thetb)); + radius = nalfad*sind(theta); + radiusb = nalfad*sind(thetb); + gradius = 0.5*radius; + alfa = rigorouscircle( alfacnt, (0,0,1), radius ); + alfab = rigorouscircle( alfacntb, (0,0,1), radiusb ); + ngorig = orig+nalfa; + ngorigb = orig+nalfaz; + gammacnt = cosd(theta)*cosd(theta)*nalfa+0.75*nalfa; + gammacntb = cosd(theta)*cosd(theta)*nalfaz+0.75*nalfaz; + radius := cosd(theta)*sind(theta); + gamma = rigorouscircle( gammacnt, nalfa, gradius ); + gammab = rigorouscircle( gammacntb, nalfaz, gradius ); + + pickup pencircle scaled 1; + + for i=0 step 40 until 0: + nazy := gradius*sind(gammang+i)*ncrossprod( nalfa, axxc ); + nax := gradius*cosd(gammang+i)*ncrossprod( ayyc, nalfa ); + ngamma[i] := gammacnt+nax+nazy; + draw rp(ngorig)..rp(ngamma[i]); + nazyb := gradius*sind(gammang+i)*ncrossprod( nalfaz, axxc ); + naxb := gradius*cosd(gammang+i)*ncrossprod( ayyc, nalfaz ); + ngammab[i] := gammacntb+naxb+nazyb; + draw rp(ngorigb)..rp(ngammab[i]); + endfor; + + pickup pencircle scaled 0.5; + + draw alfa dashed evenly; + draw alfab dashed evenly; + + drawarrow rp(orig)..rp(axxc); + drawarrow rp(orig)..rp(ayyc); + drawarrow rp(-azzc)..rp(azzc); + drawarrow rp(orig)..rp(2*field); + pickup pencircle scaled 2; + draw rp(orig)..rp(nalfa); + draw rp(orig)..rp(nalfa); + draw rp(orig)..rp(nalfaz); + pickup pencircle scaled 0.5; + draw rp(nalfa)..rp(gammacnt) dashed evenly; + draw rp(nalfaz)..rp(gammacntb) dashed evenly; +% draw subpath (3.05,1.05) of alfa; +% drawarrow subpath (4,3) of alfa; +% draw subpath (0,1.3) of gamma; +% draw subpath (7.5,8) of gamma; +% drawarrow subpath (1,2) of gamma; + anglinen( field, azzc, orig, deltarad, deltalabel, deltapos ); + anglinen( azzc, nalfa, orig, thetarad*1.5, thetalabel, thetapos ); + anglinen( nalfaz, -azzc, orig, thetarad*2, thetalabelb, thetapos ); +% anglinen( nalfa, nalfaz, orig, thetarad*1.25, btex $\Delta$ etex, 5 ); +% anglinen( ngamma0, field, orig, etalpharad, etalphalabel, etalphapos ); + labeln( xxlabel, rp(axxc), xxpos ); + labeln( yylabel, rp(ayyc), yypos ); + labeln( zzlabel, rp(azzc), zzpos ); + labeln( corelabel, rp(orig+(0.2,-0.1,-0.2)), 1 ); + labeln( fieldlabel, rp(2*field), fieldpos ); +% labeln( nalfalabel, rp(nalfa), nalfapos ); + labeln( ngammalabel, rp(ngamma0), ngammapos ); + labeln( ngammalabel, rp(ngammab0), 1 ); + labeln( phiMlabel, point 1 of alfa, 7 ); + labeln( phimlabel, point 4 of alfa, 5 ); + labeln( phiMlabel, point 0.4 of alfab, 7 ); + labeln( phimlabel, point 3.5 of alfab,4 ); +% labeln( gammalabel, point 8 of gamma, gammapos ); +% labeln( yycalabel, rp(gammacnt+1.3*radius*(-1,0,0)), 0); +% labeln( xxcalabel, rp(gammacnt+1.3*radius*(0,1,-sind(theta))), 0); + pickup pencircle scaled 1.5; +% draw rp(alfacnt); +% draw rp(gammacnt); + pickup pencircle scaled 0.5; + + path arco, recta_um, recta_dois, recta_xlayer, path_ngamma; + path arcob, recta_umb, recta_doisb ; + pickup pencircle scaled 0.5; + recta_um = rp(alfacnt)--rp(alfacnt+nalfad*1.4*radius*(1,0,0)); + recta_dois = rp(alfacnt)--rp(alfacnt+nalfad*1.4*radius*(0,1,0)); + draw recta_um; + draw recta_dois; + draw rp(nalfa)..rp((0,nalfad*sind(theta)*sind(90),-nalfad*cosd(thetb))) dashed evenly; + + recta_umb = rp(alfacntb)--rp(alfacntb+nalfad*1.4*radius*(1,0,0)); + recta_doisb = rp(alfacntb)--rp(alfacntb+nalfad*1.4*radius*(0,1,0)); + draw recta_umb; + draw recta_doisb; + + pickup pencircle scaled 1; + arco = (alfa cutbefore recta_dois) cutafter recta_um; + draw arco; + arcob = (alfab cutbefore recta_doisb) cutafter recta_umb; + draw arcob; + + + pickup pencircle scaled 0.5; + % drawarrow rp(gammacnt)--rp(gammacnt+1.3*radius*(-1,0,0)); + + path_ngamma = rp(gammacnt)--rp(ngamma0)--rp((0,0,0)); +% draw path_ngamma; +%%% c vector + draw rp(gammacnt)--rp(ngamma0) dashed evenly; + draw rp(gammacntb)--rp(ngammab0) dashed evenly; + + recta_xlayer = rp(gammacnt)--rp(gammacnt+1.3*radius*(0,1,-sind(theta))); +% drawarrow recta_xlayer; + + pickup pencircle scaled 0.5; + + arco := (gamma cutbefore recta_xlayer) cutafter path_ngamma; + draw gamma dashed evenly; + draw gammab dashed evenly; + undraw arco; + + pickup pencircle scaled 0.5; + draw gamma dashed evenly; + +% draw subpath (0,0.9) of gamma; +% draw subpath (7.6,8) of gamma; +% draw subpath (1.5,8) of gamma; + draw subpath (3.2,1.2) of alfa; +% labeln( vecclabel, rp(ngamma0), veccpos); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + picture schemepic; + schemepic = currentpicture; + numeric initang, stampnum, stepang, stampoffset; + stampnum = 15; + stampoffset = 0.2mm; + initang = 180/stampnum; + stepang = 2*initang; + drawoptions(); + for i=0 upto (stampnum-1): + draw schemepic + shifted (stampoffset*dir(initang+i*stepang)) + withcolor (blue+green); + endfor; + draw schemepic; +endfig; + +verbatimtex \end{document} etex + +end; |