\documentclass[a4paper,landscape]{article}
\usepackage[margin=0cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,calc,shapes.geometric}
\pagestyle{empty}

% Declare layers
\pgfdeclarelayer{crosslayer}
\pgfdeclarelayer{lenslayer}
\pgfsetlayers{lenslayer,crosslayer,main}

\begin{document}
\begin{tikzpicture}[remember picture,overlay]

  % Layer 1: Crosshairs
  \begin{pgfonlayer}{crosslayer}
    \draw[gray!50, line width=0.3pt]
      ([xshift=0.5\paperwidth]current page.south west) --
      ([xshift=0.5\paperwidth]current page.north west);
    \draw[gray!50, line width=0.3pt]
      ([yshift=0.5\paperheight]current page.south west) --
      ([yshift=0.5\paperheight]current page.south east);
  \end{pgfonlayer}

  % SHIFT origin to page center and set 1cm = 1 unit
  \begin{scope}[shift={(current page.center)}, x=1cm, y=1cm, >=Stealth]

    % PARAMETERS
    % lens height59mm, half height lensYR
    % centre 8mm lensXC =4mm, sagitta 6mm lensXR 5.7; End has + 0.1 to improve look
    % f 7.5cm gives lens maker calc for radius of curvature 7.35
    % lensYS scaled to use 0.4 of half height for nice curve
    % lensXCS manually set to match centre width better

    % PARAMETERS
    \def\f{7.5}
    \def\rayEnd{12.5}
    \def\dy{0.95}
    \def\rdy{1.05}
    \def\lensYR{2.95}
    \def\lensXC{0.40}
    \def\R{7.35}
    \pgfmathsetmacro{\lensXR}{\R - sqrt(\R^2 - \lensYR^2)}
    \pgfmathsetmacro{\lensXEnd}{\lensXC + \lensXR + 0.01}
    \pgfmathsetmacro{\lensYS}{0.4*\lensYR}
    \def\lensXCS{0.1}


    % Layer 2: Lens
    \begin{pgfonlayer}{lenslayer}
      \draw[gray, fill=blue!3!white, thin]
          (-\lensXEnd, -\lensYR)
            .. controls (-\lensXCS, -\lensYS) and (-\lensXCS, \lensYS) ..
            (-\lensXEnd, \lensYR)
          -- (\lensXEnd, \lensYR)
            .. controls (\lensXCS, \lensYS) and (\lensXCS, -\lensYS) ..
            (+\lensXEnd, -\lensYR)
          -- cycle;
    \end{pgfonlayer}

    % Layer 3: Main content
    %  label
    \node[blue!5!black, above right] at (0,\lensYR+1.2) {\Large \makebox[5.5cm][l]{\dotfill} \Huge lens};

    % Virtual focus on left
    \coordinate (Fv) at (-\f,0);
    \draw[fill=black] (Fv) circle (0.07) node[below=22mm, xshift=-1.8cm] {\Large \makebox[3.5cm][l]{\dotfill}};
    \draw[black, thick] (-\f - 1.8, -1.4) -- (-\f - 0.2, -0.2);

     % Incoming parallel rays
    \foreach \y in {- \dy,0,\dy} {
      \draw[gray, thick, ->, dash pattern=on 0.6cm off 4.6cm] (-12,\y) -- (-6,\y);
      \draw[gray, thick, dash pattern=on 0.6cm off 4.5cm] (-6,\y) -- (0.2-\lensXR,\y);
    }

    % Diverging rays through lens (refracted)
    \foreach \y in {- \rdy,0,\rdy} {
        \pgfmathsetmacro{\slope}{(\y - 0)/(\lensXC + \f)}
        \pgfmathsetmacro{\xcut}{-0.2-\lensXC}
        \pgfmathsetmacro{\ycut}{\slope*(\xcut + \f)}
        \draw[gray, thick, dash pattern=on 3pt off 40pt] (Fv) -- (\xcut,\ycut);

        \pgfmathsetmacro{\xstart}{0.05+\lensXC}
        \pgfmathsetmacro{\xend}{\xstart + 12}
        \pgfmathsetmacro{\ystart}{\y}
        \pgfmathsetmacro{\yend}{\ystart + \slope*(\xend - \xstart)}
        \draw[gray, thick, ->, dash pattern=on 1cm off 4.5cm] (\xstart,\ystart) -- (\xend,\yend);
    }

    % Focal length indicator
    \draw[<->] (0,-\lensYR-0.6) -- (-\f,-\lensYR-0.6) node[midway,below] {\Large $f=7.5$ cm};

    % circle to check curvature
    % \coordinate (F2) at (\f +\lensXC -0.1,0);
    % \draw[red, loosely dashed] (F2) circle (\R);

  \end{scope}

\end{tikzpicture}
\end{document}
