summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/featpost/example/A131.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/A131.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/featpost/example/A131.mp222
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;