\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 height75mm, half height lensYR 37.5mm
    % centre thickness6mm lensXC = 0.cm, lensXCRight 6mm to better match curve thickness
    %  sagitta 14mm; lensXR 2.6
    % f 2.8cm gives radius of curvature (2f) 5.6
    % lensYS scaled to use 0.4 of half height for nice curve
    % lensXCS manually set to match centre width better

    % PARAMETERS
    \def\f{2.8}
    \def\rayEnd{10}
    \def\dy{0.95}
    \def\rdy{0.94}
    \def\lensYR{3.75}
    \def\lensXC{0.6}
    \def\lensXCRight{0.4}
    \def\R{5.6}
    \pgfmathsetmacro{\lensXR}{\R - sqrt(\R^2 - \lensYR^2)}
    \pgfmathsetmacro{\lensYS}{0.4*\lensYR}
    \def\lensXCS{0.5}
    \pgfmathsetmacro{\lensXEnd}{\lensXC + \lensXR}


    \begin{pgfonlayer}{lenslayer}
          % Top curve
       \draw[gray, fill=blue!3!white, thin, line join=round]
         (\lensXR + \lensXC, \lensYR)
            arc[start angle=310, delta angle=180, radius=\lensXC/2.9]
            --
         (\lensXR, \lensYR);
    \draw[gray, fill=blue!3!white, thin, line join=round]
        % Start at top-right
        (\lensXR + \lensXC, \lensYR)
        % Right curve down
        .. controls (-\lensXCS + \lensXCRight, \lensYS) and (-\lensXCS + \lensXCRight, -\lensYS) ..
        (\lensXR + \lensXC, -\lensYR)
        % Bottom arc to bottom-left
        arc[start angle=50, delta angle=-180, radius=\lensXC/2.9]
        -- (\lensXR, -\lensYR)
        % Left curve up
        .. controls (-\lensXCS, -\lensYS) and (-\lensXCS, \lensYS) ..
        (\lensXR, \lensYR);
    \end{pgfonlayer}



    % Layer 3: Main content
    %  label
    \node[blue!5!black, above right] at (0,\lensYR+1.2) {\Huge Convex Mirror};

    % Virtual focus on left
    \coordinate (Fv) at (\f,0);
    \draw[fill=black] (Fv) circle (0.07) node[below=16mm, xshift=1.0cm] {\Large $Virtual Focus$};
    \draw[black, thick] (\f + 1.0, -1.6) -- (\f + 0.2, -0.2);

    % Incoming parallel rays
    \foreach \y in {- \dy,0,\dy} {
      \draw[gray, thick, ->] (-12,\y) -- (-6,\y);
      \draw[gray, thick] (-6,\y) -- (0.0,\y);
    }

    % Diverging reflected rays
    \foreach \y in {- \rdy,0,\rdy} {
        \pgfmathsetmacro{\slope}{(\y - 0)/(0 + \f)}
        \pgfmathsetmacro{\xcut}{0.2+\lensXCRight}
        \pgfmathsetmacro{\ycut}{\slope*(-\xcut + \f)}
        \draw[gray, thick, dashed] (Fv) -- (\xcut,\ycut);

        \pgfmathsetmacro{\xstart}{0.05}
        \pgfmathsetmacro{\xend}{\xstart - \rayEnd}
        \pgfmathsetmacro{\ystart}{\y}
        \pgfmathsetmacro{\yend}{\ystart + \slope*(-\xend + \xstart)}
        \draw[gray, thick, ->] (\xstart,\ystart) -- (\xend,\yend);
    }


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

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

  \end{scope}

\end{tikzpicture}
\end{document}
