Edit and compile if you like:
\documentclass[border=2pt]{standalone} % Drawing \usepackage{tikz} % Tikz Library \usetikzlibrary{decorations.markings, calc, arrows.meta, positioning, shadings} % Styles %% Laser \tikzset{laser/.style={thick, black}} %% Arrow in the Middle of a Line \tikzset{arrow inside/.style = {postaction=decorate, decoration={markings, mark=at position .62 with \arrow{stealth}}}} \tikzset{arrow inside1/.style = {postaction=decorate, decoration={markings, mark=at position .62 with \arrow{stealth}}}} %% Rays \tikzset{ray/.style={very thick, red, arrow inside}} \tikzset{ray1/.style={very thick, red, arrow inside1}} %% Detectors \tikzset{detector/.style={thick, draw=black, fill=black!40}} %% Reflector \tikzset{reflector/.style={thick, black, left color=black!50, right color=black!50, middle color=white}} \tikzset{reflector1/.style={thick, black, top color=black!50, bottom color=black!50, middle color=white}} \begin{document} %Layers \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} % \pgfsetlayers{background, main, foreground} \begin{tikzpicture} % % Grid % \draw[black!20] (0,0) grid (10,10); % \foreach \i in {0,...,10} % { % \node at (-2ex,\i) {\i}; % \node at (\i,-2ex) {\i}; % } % Coordinates %% Laser \coordinate (a) at (0,6); \coordinate (a') at (0.85,6); \coordinate (b) at (1,3); \coordinate (c) at (0.4,4.5); %% Rays \coordinate (A) at (4.94,9); \coordinate (O) at (5,4.5); \coordinate (Ol) at (4.85,4.5); \coordinate (Or) at (5.06,4.58); \coordinate (Ou) at (4.94,4.7); \coordinate (Od) at (5,4.35); \coordinate (B) at (8,4.58); \coordinate (C) at (4.85,0); \coordinate (D) at (1,4.5); % Laser \begin{pgfonlayer}{foreground} \draw[laser, fill=black!20] (a) rectangle (b); \draw[laser, fill=black!40] (a') rectangle (b); \node[rotate=90] at (c) {Laser}; \end{pgfonlayer} % Reflectors \begin{pgfonlayer}{background} \draw[rounded corners, thick] (7.5,4.58-1.1) rectangle (9.5,4.58+1.1); \end{pgfonlayer} % \begin{pgfonlayer}{foreground} \draw[detector] (4.94-1,9) rectangle (4.94+1,9.2); \draw[reflector] (4.85-1,0) rectangle (4.85+1,-0.2); \draw[reflector1] (8,4.58-1) rectangle (8.2,4.58+1); \end{pgfonlayer} % \begin{pgfonlayer}{main} \draw[reflector, rotate around={-45:(5,4.5)}] (4,4.4) rectangle (6,4.6); \end{pgfonlayer} % Lens \begin{pgfonlayer}{foreground} \draw[thick, top color = black!50, bottom color=black!50, middle color = white, even odd rule] (2.5,4.5) ellipse (0.1cm and 0.5cm) (2.53,4.5) ellipse (0.05cm and 0.4cm); \draw[thick, fill=black!10] (2.53,4.5) ellipse (0.05cm and 0.4cm); \end{pgfonlayer} % Rays \begin{pgfonlayer}{main} \draw[ray] (Ou) -- (A); \draw[ray] (Or) -- (B); \draw[ray1] (B) -- (Or); \draw[ray] (Ol) -- (C); \draw[ray1] (C) -- (Ol); \draw[ray] (D) -- (Ol); \draw[ray1] (1,4.5) -- (2.4,4.5); % \draw[very thick, red] (Ol) -- (Or); \draw[very thick, red] (Ol) -- (Ou); \end{pgfonlayer} % Arrows \begin{pgfonlayer}{background} \draw[latex-latex, thick, dashed] (7.6,3) -- (9.4,3); \end{pgfonlayer} % Nodes \node at (4.94,9.5) {\small Viewing screen}; \node at (5.8,3.35) {$\mathrm{M_o}$}; \node at (4.85,-0.5) {$\mathrm{M_1}$}; \node at (8.6,4.58) {$\mathrm{M_2}$}; \node at (2.5, 3.7) {$\mathrm{L}$}; \node at (4.55, 2.3) {\small$1$}; \node at (6.53, 4.9) {\small$2$}; % Refinements \begin{pgfonlayer}{foreground} \draw[very thick, red, line cap=round] (2.55,4.5) -- ++(1,0); \draw[fill=red, draw=red] (Ou) circle (0.4pt); \draw[fill=red, draw=red] (Or) circle (0.4pt); \end{pgfonlayer} % % Axis % \begin{pgfonlayer}{main} % \node[circle, draw, inner sep=0pt, minimum size=5pt, label=below :{$x$}] (S) at (0,8) {}; % \draw[fill=black] (0,8) circle (1pt); % \draw[-latex, thick] (S) -- (1,8) node[right] {$y$}; % \draw[-latex, thick] (S) -- (0,9) node [above] {$z$}; % \end{pgfonlayer} \end{tikzpicture} \end{document}
Click to download: interferometer.tex
Open in Overleaf: interferometer.tex
This file is available on GitHub.
See more on the author page of Alexandros Tsagkaropolulos.