I'd like to recreate the image below of an electron beam passing through -- and being diffracted by -- a carbon target onto a curved screen using TikZ. Unfortunately it looks a bit beyond my skill level. How could I recreate this?
1 Answer
Here's an attempt from the procrastination team in Metapost. It actually turned out to be quite an nice diagram to draw; you just need to specify ell
and theta
and the radius of the screen as a proportion of ell
and the program calculates the other angle required, using a combination of sind
, angle
and the Pythagorean subtraction operator +-+
.
I was not sure how to represent what appear to be diffraction patterns on the OP screen, so I left them out. The pink lines are just to show the construction and should be removed from a final version. Enjoy!
prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
% parameters
theta = 5;
ell = 10cm;
R = 0.42 ell;
% calculate alpha
h = (ell-R)*sind(2theta);
alpha = 2theta + angle (R+-+h,h);
% define paths
path target, screen, a[];
target = unitsquare shifted -(.5,.5) xscaled 3 yscaled 12 shifted (R-ell,0);
screen = (R,0) rotated -1.1 alpha .. (R,0){up} .. (R,0) rotated 1.1 alpha;
% draw the various guides
drawoptions(withcolor .7 white);
draw (R-ell-1cm,0) -- (R+1cm,0) dashed dashpattern(on 40 off 6 on 8 off 6);
draw (R-ell,0) -- (R-ell,-2.5cm);
draw (R ,0) -- (R ,-2.5cm);
a1 = (R-ell,-2.2cm) -- (R, -2.2cm);
picture t; t = thelabel(btex $\ell$ etex,point 1/2 of a1);
drawdblarrow a1; unfill bbox t; draw t;
% draw the gubbins around the carbon target
drawoptions(withpen pencircle scaled 2);
draw (4 left -- right) scaled 4 shifted center target shifted 10 up;
draw (4 left -- right) scaled 4 shifted center target shifted 10 down;
drawoptions();
draw (up--down) scaled 10 shifted center target;
fill target;
% and the screen
draw screen withpen pencircle scaled 2;
draw screen withpen pencircle scaled 1.2 withcolor background;
% add some beam arrows
drawarrow (20 left -- origin) shifted point 3.5 of target;
drawarrow center target -- (R-1,0) rotated alpha;
drawarrow center target -- (R-1,0) rotated -alpha;
% mark the beam angle
a2 = ((R,0) {up} .. (R,0) rotated(2 theta)) shifted (R-ell,0);
ahlength := 3; ahangle := 30;
drawdblarrow a2 withcolor .7 white;
label.rt(btex $2\theta$ etex, point .5 of a2) withcolor .7 white;
% add labels
label(btex Screen etex, point 1.6 of screen + 20 right);
label(btex Carbon target etex, center target + 24 up);
% this bit is just to show the construction, and should be deleted...
drawoptions(withcolor .7[red,white]);
fill fullcircle scaled 3;
draw subpath(-1,1) of fullcircle scaled 2R;
draw origin -- (R,0) rotated alpha;
label(btex $\alpha$ etex, 25 right rotated 1/2 alpha);
%---------------------------------------------------------
endfig;
end.
pst-optic
package, you may like to check out thepst-optexp
package.