Edit and compile if you like:
\documentclass[border=3pt]{standalone} % Drawing \usepackage{tikz} % Tikz Library \usetikzlibrary{3d, shapes.multipart, angles, quotes} % Tikz Styles \tikzset{>=latex} \tikzset{axis/.style={black, very thick, ->}} \tikzset{ef/.style={very thick, red}} \tikzset{vec/.style={black, -{Latex[length=0.8mm]}}} \tikzset{every text node part/.style={align=center}} % Newcommand %% Polar Coordinates Line from (0,0 to (r, theta) \newcommand{\cdraw}[2]{\draw[very thick, -stealth, red] (0,0) -- ({#1*cos(#2)}, {#1*sin(#2)});} %% Polarizer \newcommand{\polarizer}[2]{% \begin{scope}[canvas is xz plane at y=1.2] \draw[line join=round, thick, fill=black!40] (#1,-1.2) rectangle (#1+0.2,1.2); \end{scope} % \begin{scope}[canvas is xy plane at z=1.2] \draw[line join=round, thick, fill=black!25](#1,-1.2) rectangle (#1+0.2,1.2); \end{scope} % \begin{scope}[canvas is yz plane at x=#1] \draw[line join=round, thick, fill=black!10] (-1.2,-1.2) rectangle (1.2,1.2); \draw[line join=round, thick, fill=white] (0,0) circle (0.8cm); \draw[line join=round, thick] (-{0.8*cos(#2)}, -{0.8*sin(#2)}) -- ({0.8*cos(#2)},{0.8*sin(#2)}); \end{scope} } %% Analyser \newcommand{\analizer}[2]{% \begin{scope}[canvas is xz plane at y=1.2] \draw[line join=round, thick, fill=black!40] (#1,-1.2) rectangle (#1+0.2,1.2); \end{scope} % \begin{scope}[canvas is xy plane at z=1.2] \draw[line join=round, thick, fill=black!25](#1,-1.2) rectangle (#1+0.2,1.2); \end{scope} % \begin{scope}[canvas is yz plane at x=#1] \draw[line join=round, thick, fill=black!10] (-1.2,-1.2) rectangle (1.2,1.2); \draw[line join=round, thick, fill=white] (0,0) coordinate (B) circle (0.8cm); \draw[line join=round, thick] (-{0.8*cos(#2)}, -{0.8*sin(#2)}) -- ({0.8*cos(#2)},{0.8*sin(#2)}) coordinate (A); \draw[line join=round, dashed, thick] (0,-0.8) -- (0,0.8) coordinate (C); \pic[line join=round, draw, thick, "$\theta$", angle radius=0.25cm, angle eccentricity=1.8] {angle = A--B--C}; \end{scope} } % Notation \usepackage{amsmath} \begin{document} %Layers \pgfdeclarelayer{layer1} \pgfdeclarelayer{layer2} \pgfdeclarelayer{layer3} \pgfdeclarelayer{layer4} \pgfdeclarelayer{layer5} \pgfdeclarelayer{layer6} \pgfdeclarelayer{layer7} \pgfsetlayers{main, layer7, layer6, layer5, layer4, layer3, layer2, layer1} \begin{tikzpicture}[x={(1cm,0.4cm)}, y={(8mm, -3mm)}, z={(0cm,1cm)}, line cap=round, line join=round] % Main Axes % \draw[->] (0,0,0) -- (12,0,0) node[right] {$x$}; % \draw[->] (0,0,0) -- (0,2,0) node[below left] {$y$}; % \draw[->] (0,0,0) -- (0,0,2) node[above] {$z$}; % Big Axis \draw[axis] (-1,0,0) -- (12.5,0,0) node[right, black] {\small{Polarization}\\[-0.5mm]\small{Direction}}; % Polarizers \begin{pgfonlayer}{layer1} \polarizer{3}{90} \end{pgfonlayer} \begin{pgfonlayer}{layer3} \analizer{8}{50} \end{pgfonlayer} % Polarizer and Analiyzer Nodes \begin{scope}[canvas is yz plane at x=3] \node[rotate=-20] at (0.5,1.8) {\small{Polarizer}}; \end{scope} % \begin{scope}[canvas is yz plane at x=8] \node[rotate=-20] at (0.5,1.8) {\small{Analyser}}; \end{scope} % Polarization Planes \begin{pgfonlayer}{layer1} \begin{scope}[canvas is xy plane at z=-0.2] \draw[latex-] (3,0) to[out=160, in=270] (3,3) node[right, yshift=-3pt] {\small{Polarization Plane}\\[-0.5mm]\small{of Polarizer}}; \end{scope} % \begin{scope}[canvas is xy plane at z=-0.2] \draw[latex-] (7.85,-0.07) to[out=130, in=270] (8,3) node[right, yshift=-3pt] {\small{Polarization Plane}\\[-0.5mm]\small{of Analyser}}; \end{scope} \end{pgfonlayer} % Electric Field %% Physical Light \begin{pgfonlayer}{layer1} \begin{scope}[canvas is yz plane at x=0.7] \foreach \i in {0,45,...,315} { \cdraw{0.8}{\i} } \end{scope} \end{pgfonlayer} %% Linear Polarization \begin{pgfonlayer}{layer2} \begin{scope}[canvas is yz plane at x=5.4] \node at (0,1.4) {$\mathbf E, \: I$}; \end{scope} \foreach \i in {3,3.5,...,7.5} { \begin{scope}[canvas is yz plane at x=\i] \cdraw{0.8}{90} \cdraw{0.8}{270} \end{scope} } \end{pgfonlayer} %% Slanted Linear Polarization \begin{pgfonlayer}{layer4} \begin{scope}[canvas is yz plane at x=10.5] \draw[dashed] (0,-0.8) -- (0,0.8); \coordinate (A) at ({0.8*cos(45)},{0.8*sin(45)}); \coordinate (B) at (0,0); \coordinate (C) at (0,0.8); \pic[draw, "$\theta$", angle radius=0.25cm, angle eccentricity=2, pic text options={xshift=-1pt}] {angle = A--B--C}; \end{scope} \foreach \i in {8,8.5,...,11.5} { \begin{scope}[canvas is yz plane at x=\i] \cdraw{0.8}{45} \cdraw{0.8}{225} \end{scope} } \end{pgfonlayer} % Nodes \node at (0.7,0,1.3) {$I_o$}; \node at (10,0,1) {$I'$}; % Refinements for 3D View \begin{pgfonlayer}{layer1} \draw[very thick] (1,0,0) -- (2.99,0,0); \end{pgfonlayer} \begin{pgfonlayer}{layer3} \draw[very thick] (6,0,0) -- (7.99,0,0); \end{pgfonlayer} \end{tikzpicture} \end{document}
Click to download: malus-law.tex
Open in Overleaf: malus-law.tex
This file is available on GitHub.
See more on the author page of Alexandros Tsagkaropolulos.