-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy paththomson-scattering.tex
90 lines (77 loc) · 2.84 KB
/
thomson-scattering.tex
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
\documentclass[tikz,border=5pt]{standalone}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{fadings,shadings}
\tikzfading[name=fade out,
inner color=transparent!0,
outer color=transparent!100]
\pgfdeclareradialshading{atomshade}{
\pgfpoint{0cm}{0cm}}
{
color(0cm)=(pgftransparent!0);
color(0.2cm)=(pgftransparent!20);
color(0.5cm)=(pgftransparent!50);
color(0.7cm)=(pgftransparent!70);
color(1cm)=(pgftransparent!100)
}
\tikzset{atom/.style={circle, shading=atomshade, minimum size=1.0cm}}
\begin{document}
\begin{tikzpicture}
% Settings for incoming wave
\def\incomingWaveStart{-1.833}
\def\incomingWaveEnd{-1.2165}
\def\incomingArrowStart{-1.2165}
\def\incomingArrowEnd{-1.0996}
% Settings for scattered waves
\def\scatteredWaveStart{0}
\def\scatteredWaveEnd{0.633}
\def\scatteredArrowStart{0.633}
\def\scatteredArrowEnd{0.75}
\def\oscillationAmplitude{0.1}
\def\frequencyFactor{2.0e3}
% General settings
\def\atomRadius{0.55} % Radius of atom
\def\waveLengthLabelPosX{-1.7}
\def\waveLengthLabelPosY{0.0}
\def\highlightAngle{135}
\def\opacityHigh{1}
\def\opacityLow{0.65}
% Atom
\node[atom=gray] (atom1) at (0,0) {};
% Oscillations
\foreach \radius in {0.85, 0.95, 1.05, 1.15} {
\draw[path fading=fade out, thick] (\radius cm - 0.20cm, 0.05cm) arc (15:75:\radius cm);
\draw[path fading=fade out, thick] (-\radius cm + 0.20cm, -0.05cm) arc (195:255:\radius cm);
}
% Incoming x-ray wave
\draw[black, variable=\x, samples=200, smooth, domain=\incomingWaveStart:\incomingWaveEnd]
plot( \x, {-\oscillationAmplitude + \oscillationAmplitude * cos(\frequencyFactor*\x)} );
% Arrow segment at the end
\draw[->, black, variable=\x, samples=20, smooth, domain=\incomingArrowStart:\incomingArrowEnd]
plot( \x, -\oscillationAmplitude);
\node [above] at (\waveLengthLabelPosX,\waveLengthLabelPosY) {$\lambda$};
% Emitted x-rays
\foreach \angle in {95, \highlightAngle, 165, 275, 315, 350} {
\pgfmathsetmacro{\startX}{\atomRadius * cos(\angle)}
\pgfmathsetmacro{\startY}{\atomRadius * sin(\angle)}
\pgfmathparse{\angle==\highlightAngle ? \opacityHigh : \opacityLow}
\let\op\pgfmathresult
% Wave packet
\draw[black, opacity=\op, variable=\x, samples=200, smooth, domain=\scatteredWaveStart:\scatteredWaveEnd]
plot({
\startX + \x * cos(\angle) - \oscillationAmplitude * sin(\frequencyFactor*\x)*sin(\angle)
}, {
\startY + \x * sin(\angle) + \oscillationAmplitude * sin(\frequencyFactor*\x) * cos(\angle)
});
% Arrow at the end
\draw[->, black, opacity=\op, variable=\x, samples=20, smooth, domain=\scatteredArrowStart:\scatteredArrowEnd]
plot({
\startX + \x * cos(\angle)
}, {
\startY + \x * sin(\angle)
});
}
\node [left, opacity=\opacityLow] at (+95:1.1) {$\lambda$};
\end{tikzpicture}
\end{document}