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

\pagestyle{empty}

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

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

  % Layer 3: Crosshairs (topmost)
  \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 height58mm, half height lensYR; width from 3 to 15 mm
    % centre 4mm half thickness lensXC=2 mm approx, sagitta 5.5mm lensXR 5.9
    % 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 has 0.2 added for benzier curve to be ok

    \def\f{7.5}
    \def\rayEnd{12.5}
    \def\dy{0.95}
    \def\rdy{0.85}
    \def\lensYR{2.90}
    \def\lensXC{0.2}
    \def\R{7.35}
    \pgfmathsetmacro{\lensXR}{\R - sqrt(\R^2 - \lensYR^2)}
    \pgfmathsetmacro{\lensXCS}{\lensXC + \lensXR + 0.1}
    \pgfmathsetmacro{\lensYS}{0.4*\lensYR}

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

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

    \coordinate (F) at (\f,0);
    \draw[fill=black] (F) circle (0.07) node[below=20pt] {\Large \makebox[2.5cm][l]{\dotfill}};

    \foreach \y in {- \dy, 0, \dy} {
      \draw[gray, thick,  ->, dash pattern=on 1cm off 4cm] (-12,\y) -- (-6,\y);
      \draw[gray, thick, dash pattern=on 1cm off 3.5cm] (-6,\y) -- (0.2-\lensXCS,\y);
    }

    \foreach \y in {- \rdy, 0, \rdy} {
      \pgfmathsetmacro{\yend}{\y*(1 - \rayEnd/\f)}
      \draw[gray, thick, dash pattern=on 1cm off 5cm] (-0.2+\lensXCS,\y) -- (F);
      \draw[gray, thick, ->, dash pattern=on 1cm off 3.0cm] (F) -- (\rayEnd,\yend);
    }

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

  \end{scope}

\end{tikzpicture}
\end{document}
