Edit and compile if you like:
% Author: Izaak Neutelings (December 2020) % Inspiration: https://tex.stackexchange.com/questions/285578/how-to-draw-parallelepiped-and-cube-with-latex/288101#288101 \documentclass[border=3pt,tikz]{standalone} \usepackage{amsmath} \usetikzlibrary{arrows,arrows.meta} \tikzset{>=latex} % for LaTeX arrow head \colorlet{myblue}{blue!60!black} \colorlet{myred}{red!80!black} \colorlet{vcol}{green!60!black} \tikzstyle{vvec}=[-{Latex[length=4,width=3]},thick,vcol,line cap=round] \tikzstyle{myarr}=[-{Latex[length=3,width=2]}] \tikzstyle{mydoublearr}=[{Latex[length=3,width=2]}-{Latex[length=3,width=2]}] \tikzset{ pics/eye/.style={ code={ \draw (#1-180:0.5) to[out=#1,in=#1-240,looseness=0.9] (#1-90:0.25) (#1-180:0.5) to[out=#1,in=#1-130,looseness=0.9] (#1-270:0.25); \clip (#1-180:0.47) to[out=#1,in=#1-240,looseness=0.9] (#1-90:0.24) -- (#1-270:0.242) to[out=#1-130,in=#1,looseness=0.9] cycle; \draw[very thin,top color=white,bottom color=red!60!black!20,shading angle=#1-120] (#1-180:0.48) circle(0.45); \fill[brown!30!black,rotate=#1-180] (0.07,0) ellipse({0.05} and 0.12); \fill[black,rotate=#1-180] (0.05,0) ellipse({0.03} and 0.06); }}, pics/eye/.default=180 } \begin{document} % REST \def\R{1.5} % radius \def\N{5} % number of wave fronts \def\lam{\R/\N} % wavelength \def\angmin{30} % min. angle velocity arrow \def\angmax{330} % min. angle velocity arrow \def\waves#1{ \foreach \i in {1,...,\N}{ \draw[myblue,thick] ({-(\i-0.25)*#1*\lam},0) circle ({\lam*(\i-0.25)}); } \foreach \a in {\angmin,90,150,210,270,\angmax}{ \draw[myarr,vcol] ({-(\N-0.25)*#1*\lam},0)++(\a:\R-0.50*\lam) --++ (\a:\lam); } \fill[myred] (0,0) circle (0.06); } \begin{tikzpicture} \waves{0} \node[vcol] at (30:1.22*\R) {$c$}; \draw[mydoublearr] (-0.9*\R,-0.8*\R) node[left=-1,scale=0.7] {$y$} |-++ (0.15*\R,-0.15*\R) node[right=-1,scale=0.7] {$x$}; \begin{scope}[shift={(0,-1.35*\R)}] \draw[myblue,thick,samples=100,smooth,variable=\x] plot[domain=-\R:0](\x,{0.1*\R*sin(360/(\lam)*\x)}) %-- plot[domain=0:\R](\x,{-0.1*\R*sin(360/(\lam)*\x)}); \fill[myred] (0,0) circle (0.05); \draw[myarr,vcol] (-\R+0.25*\lam,0.04*\R) --++ (-\lam,0); \draw[myarr,vcol] (\R-0.25*\lam,0.04*\R) --++ (\lam,0); \draw[mydoublearr] (-\R-2.3*\lam,0.06*\R) node[left=-1,scale=0.7] {$z$} |-++ (0.15*\R,-0.15*\R) node[right=-1,scale=0.7] {$x$}; \end{scope} \end{tikzpicture} % MOVING - DOPPLER SHIFT \begin{tikzpicture} \def\s{0.61} \draw[myblue!20,dashed,very thin,dash pattern=on 1 off 1] ({-(\N-0.25)*\s*\lam},0) -- (0,0); \fill[myred!20] ({-(\N-0.25)*\s*\lam},0) circle (0.06); \waves{\s} \node[vcol] at (30:{1.15*\R-\s*\R} and 1.2*\R) {$c$}; \draw[mydoublearr] (-0.9*\R-\s*\R,-0.8*\R) node[left=-1,scale=0.7] {$y$} |-++ (0.15*\R,-0.15*\R) node[right=-1,scale=0.7] {$x$}; %\draw[dashed] (\R-\s*\R,0) --++ (0,-1.3*\R); %\draw[dashed] (0,0) --++ (0,-1.3*\R); %\draw[dashed] (-\R-\s*\R,0) --++ (0,-1.3*\R); \pic at ( 1.25*\R-\s*\R,0) {eye={180}}; \pic at (-1.15*\R-\s*\R,0) {eye={0}}; \draw[-{Latex[length=4.8,width=3.8]},white,line width=1.2] (0.05,0) -- (0.22*\R+0.02,0); \fill[myred] (0,0) circle (0.06); \draw[-{Latex[length=4,width=3]},thick,vcol,line cap=round] (0.05,0) -- (0.22*\R,0); %node[right=-1] {$v$}; \begin{scope}[shift={(0,-1.35*\R)}] \draw[myblue,thick,samples=100,smooth,variable=\x] plot[domain=-(\s+1)*(\R):0](\x,{0.1*\R*sin(360/(\s+1)/(\lam)*\x)}) %-- plot[domain=0:(1-\s)*(\R)](\x,{-0.1*\R*sin(360/(1-\s)/(\lam)*\x)}); \fill[myred] (0,0) circle (0.05); \draw[myarr,vcol] ({-(\s+1)*(\R-0.25*\lam)},0.04*\R) --++ (-\lam,0); \draw[myarr,vcol] ({(1-\s)*(\R-0.25*\lam)},0.04*\R) --++ (\lam,0); \draw[mydoublearr] (-\R-\s*\R-2.3*\lam,0.06*\R) node[left=-1,scale=0.7] {$z$} |-++ (0.15*\R,-0.15*\R) node[right=-1,scale=0.7] {$x$}; \end{scope} %\draw[<->] (0,-1.5*\R) --++ (\R-\s*\R,0) % node[midway,right=2,below=1,scale=0.6] {$\sim c-v$}; %{$\sim\dfrac{c}{c+v}$}; %\draw[<->] (0,-1.5*\R) --++ (-\R-\s*\R,0) % node[midway,below=1,scale=0.6] {$\sim c+v$}; %{$\sim\dfrac{c}{c-v}$}; \end{tikzpicture} % DOPPLER SHIFT - distances \begin{tikzpicture} \def\R{2.0} % total radius \def\N{5} % number of wave fronts \def\lam{\R/\N} % wavelength \def\s{0.5} % shift \def\ang{13} % opening angle \draw[dashed] (-\s*\R,-0.27*\R) --++ (0,0.5*\R) (0,-0.27*\R) --++ (0,0.5*\R); \draw[myblue!50,dashed,very thin,dash pattern=on 1 off 1] ({-\s*\R},0) -- (0,0); \fill[myred!20] ({-\s*\R},0) circle (0.06); \foreach \i [evaluate={\r=\i*\lam;\a=\ang-1.2*\i;}] in {1,...,\N}{ \draw[myblue,thick] ({-\i*\s*\lam},0)++(180-\a:\r) arc(180-\a:180+\a:\r); \draw[myblue,thick] ({-\i*\s*\lam},0)++( \a:\r) arc( \a:-\a:\r); } \draw[white,line width=1.2] %-{Latex[length=4.8,width=3.8]} (0.05,0) -- (0.96*\lam-0.02,0); \fill[myred] (0,0) circle (0.06); \draw[-{Latex[length=4,width=3]},thick,vcol,line cap=round] (0.05,0) -- (0.96*\lam,0) node[left=3,above=0,scale=0.9] {$v_\mathrm{s}$}; \draw[->] (-\s*\R,0.18*\R) --++ (\s*\R,0) node[midway,above=-1,scale=0.8] {$v\Delta t$}; \draw[->] (-\s*\R,-0.252*\R) --++ (\R,0) node[midway,right=4,below=-1,scale=0.8] {$c\Delta t$}; \draw[->] (-\s*\R,-0.240*\R) --++ (-\R,0) node[midway,below=-1,scale=0.8] {$c\Delta t$}; \draw[myarr,vcol] (0:\R-\s*\R-0.25*\lam) --++ (0:1.1*\lam) node[right=-1,scale=0.9] {$c$}; \draw[myarr,vcol] (180:\R+\s*\R-0.25*\lam) --++ (180:1.1*\lam) node[left=-1,scale=0.9] {$c$}; \end{tikzpicture} % SONIC BOOM \begin{tikzpicture} %\draw[red!60!black!90,dash pattern=on 2 off 2,thin] % (0.05,0.2*\R) --++ (0,-0.4*\R); \waves{0.97} \end{tikzpicture} % SUPERSONIC \begin{tikzpicture} \def\angmin{90} % min. angle velocity arrow \def\angmax{270} % min. angle velocity arrow \def\f{1.4} \def\ang{asin(1/\f)} \waves{\f} \draw[red!60!black!90,dash pattern=on 2 off 2,thin] (0.015,0)++({180-\ang}:0.045) --++ ({180-\ang}:1.45*\R) (0.015,0)++({180+\ang}:0.045) --++ ({180+\ang}:1.45*\R); \foreach \i in {2,4,6}{ \draw[myarr,vcol] ({-(\i-0.25)*\f*\lam},0)++({90-\ang}:{\lam*(\i-0.45)}) --++ ({90-\ang}:\lam); \draw[myarr,vcol] ({-(\i-0.25)*\f*\lam},0)++({\ang-90}:{\lam*(\i-0.45)}) --++ ({\ang-90}:\lam); } \end{tikzpicture} \end{document}
Click to download: wave_doppler.tex • wave_doppler.pdf
Open in Overleaf: wave_doppler.tex