summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/featpost/example/experimental2Dsetup.mp
blob: d922453286ebb5c8c43fa912fe329118cefbf41f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
% experimental2Dsetup.mp
% L. Nobre G. 
% 2002

verbatimtex 
\documentclass{article} 
\usepackage{palatino} 
\usepackage{concmath} 
\usepackage{ccfonts} 
\begin{document} 
etex

beginfig(1);
%	linecap := squared;

	numeric salto, shif, rotang, cfac, posang;
	numeric innerray, outerray, midleray, thebiray, otherray;
	numeric midmidcir, midotharc, lblfac, wavecray, midwavarc;
	path loricir, roricir, baserec, sampleh, wavecarc;
	path innercirc, outercirc, midlecirc, otherarch;
	path oridirh, oridirn, oridirp, oridirv, oridire;
	path dirhoriz, dirnegat, dirposit, dirverti, direff;
	path lowcut, higcut, glassre, wavecarch, field;
	pair midmidcirpos, midotharcpos, midwavarcpos, mideffcirpos;
	pen thickpen;
	color samplecolor, magnetcolor, samplebordercolor;
	picture lblpiplu, lblalpha, lblwavec, lblqu, lblno, lblfield;
	numeric hei, wid, thi, pro, pol, mar;
	path themagnet, effcirc, diry, oridiry;
	numeric circleray, squareray, glasssize, effang, effraya, effrayb;
	picture lblx, lbly, lbleff;
	numeric mideffcir, yray;
	pair lastoridire;
	
	pickup pencircle scaled 0.15mm;
	thickpen = pencircle scaled 1.7bp;

	samplecolor = 0.88white;
	magnetcolor = 0.37white;
	samplebordercolor = 0.1white;
%	samplecolor = (0.85,0.9,0.8);
%	magnetcolor = (0.2,0.27,0.58);
%	samplebordercolor = blue;
	salto = 1mm;
	rotang = 7;
	posang = -28;
	effang = -20;
	shif = 50salto;
	thi = 5salto;
	pol = 25salto;
	pro = 8salto;
	wid = 58salto;
	cfac = 0.5;
	lblfac = 1.5;
	innerray = 27salto;
	circleray = 0.93innerray;
	squareray = 0.93circleray;
	glasssize = 0.42squareray;
	outerray = 60salto;
	midleray = 55salto;
	yray = 53salto;
	thebiray = 145salto;
	otherray = 115salto;
	wavecray = 0.5*(thebiray+otherray);
	effraya = 0.45*(midleray+otherray);
	effrayb = 0.56*(midleray+otherray);
	innercirc = fullcircle scaled innerray;
	outercirc = fullcircle scaled outerray;
	midlecirc = (halfcircle cutbefore (origin--dir(90+posang))) 
		    scaled midleray;
	midmidcir = 0.5*length midlecirc;
	midmidcirpos = point midmidcir of midlecirc;
	effcirc = ((halfcircle cutbefore (origin--dir(90+effang)))
	            cutafter (origin--up))
		    scaled effraya;
	mideffcir = 0.5*length effcirc;
	mideffcirpos = point mideffcir of effcirc;
	otherarch = ((halfcircle cutbefore (origin--dir(90+posang)))
		    cutafter (origin--up))
		    scaled otherray;
	midotharc = 0.5*length otherarch;
	midotharcpos = point midotharc of otherarch;
	wavecarch = ((halfcircle cutafter (origin--dir(90+rotang)))
		    cutbefore (origin--up))
		    scaled wavecray;
	midwavarc = 0.5*length wavecarch;
	midwavarcpos = point midwavarc of wavecarch;
	oridirh = origin--0.5*outerray*left;
	oridirv = origin--0.5*thebiray*up;
	oridirn = origin--0.5*thebiray*dir(90+rotang);
	oridirp = origin--0.5*wavecray*dir(90+posang);
	oridiry = origin--0.5*yray*dir(180+posang);
	lastoridire = 0.5*effrayb*dir(90+effang);
	oridire = origin--lastoridire;
	dirhoriz = oridirh cutbefore innercirc;
	dirverti = oridirv cutbefore innercirc;
	dirnegat = oridirn cutbefore innercirc;
	dirposit = oridirp cutbefore innercirc;
	direff = oridire cutbefore innercirc;
	diry = oridiry cutbefore innercirc;
	field = (0.5innerray,0)--(0.5wid-salto,0);
	loricir = halfcircle scaled circleray rotated 90;
	roricir = halfcircle scaled circleray rotated 270;
        baserec = (unitsquare shifted (-0.5*(1,1))) 
                  xscaled 2
                  scaled squareray;
	glassre = (unitsquare shifted (-0.5*(1,1))) 
		  yscaled (13.0/6.0)
		  scaled glasssize;
	lowcut = subpath (0,1) of baserec;
	higcut = subpath (2,3) of baserec;
	sampleh = buildcycle( higcut, loricir, reverse lowcut, roricir );
	draw glassre rotated 90 dashed evenly withcolor (cfac*white);
%	draw glassre rotated rotang dashed evenly withcolor (cfac*(white-blue));
	fill glassre rotated posang withcolor samplecolor;
	draw glassre rotated posang withcolor samplebordercolor;
	draw sampleh rotated posang withpen thickpen withcolor blue;
	drawarrow reverse midlecirc; 
	drawarrow reverse otherarch; 
	drawarrow wavecarch;
	drawarrow reverse effcirc;
	draw dirhoriz dashed evenly scaled 2;
	draw dirverti dashed evenly scaled 2;
	drawarrow dirnegat withpen thickpen;
	drawarrow dirposit withpen thickpen;
	drawarrow direff withpen thickpen;
	drawarrow reverse field withpen thickpen;
	drawarrow direff withpen thickpen;
	drawarrow diry withpen thickpen;
	lblpiplu = btex $\alpha = \frac{\pi}{2}+\beta$ etex scaled lblfac;
	lblalpha = btex $\beta$ etex scaled lblfac;
	lblwavec = btex $\Psi$ etex scaled lblfac;
	lblqu = btex $\vec{q}\,$ etex scaled lblfac;
	lblno = btex $\vec{n}_0$ etex scaled lblfac;
	lblfield = btex $\vec{B}$ etex scaled lblfac;
	lblx = btex $x$ etex scaled lblfac;
	lbly = btex $y$ etex scaled lblfac;
	lbleff = btex $\beta_{\mbox{\small eff}}$ etex scaled lblfac;
	label.ulft( lblpiplu, midmidcirpos );
	label.top( lblalpha, midotharcpos );
	label.top( lblwavec, midwavarcpos );
	label.llft( lblqu, point 0.7 of dirnegat );
	label.lrt( lblx, point 0.7 of dirposit );
	label.top( lblfield, point 0.5 of field );
	label.llft( lbly, point 0.5 of diry );
	label.top( lbleff, mideffcirpos );
	label.top( lblno, lastoridire );
	hei = pol+4thi;
	mar = (hei-2*thi-pol)*0.5;
	z100 = (pro,mar);
	z0 = (wid,pol)*0.5;
	z1 = z0 + z100;
	z2 = z1 + (thi,0);
	z3 = (xpart z2, pol*0.5+mar-hei);
	z4 = (-xpart z2, ypart z3);
	z5 = (-xpart z2, ypart z2);
	z6 = (-xpart z1, ypart z1);
	z7 = (-xpart z0, ypart z0);
	z8 = (xpart z7, -pol*0.5);
	z9 = z8 - z100;
	z10 = z9 - (0,thi);
	z11= (xpart z1, ypart z10);
	z12= z11+ (0,thi);
	z13= (xpart z0, -ypart z0);
	themagnet = z0--z1--z2--z3--z4--z5--z6--z7--
		    z8--z9--z10--z11--z12--z13--cycle;
	fill themagnet withcolor magnetcolor;
	draw themagnet withpen thickpen;
endfig;

verbatimtex 
\end{document} 
etex

end;