Lente bicóncava en Tikz

Lente bicóncava en Tikz

Hola a todos y feliz Navidad (aunque sea tarde jajaja). Me gustaría dibujar una lente bicóncava como la que aparece a continuación, pero realmente no lo consigo.

ingrese la descripción de la imagen aquí

Esto es lo que logré escribir, pero no es el resultado que deseo obtener.

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=0.9]
\pgfmathsetmacro{\lensRadius}{2.6}
\pgfmathsetmacro{\lensHeight}{1.8}
\pgfmathsetmacro{\startAngle}{-asin(\lensHeight/\lensRadius)}

\draw [fill=lightgray!50, very thick]  (0,\lensHeight)
arc[start angle=-\startAngle,delta 
angle=2*\startAngle,radius=\lensRadius]
--++ (0:2)
arc[start angle=-\startAngle,delta angle=2*\startAngle,radius=- 
\lensRadius]
-- cycle;
\end{tikzpicture}
\end{document}

Respuesta1

Esto atrae tales lentes. Le permite elegir los radios de manera diferente, pero, por supuesto, puede igualarlos. Las ubicaciones de los puntos focales se calculan con laecuación del fabricante de lentes. En lugar de macros se utilizan claves pgf. Los parámetros son la altura h, el espesor d, el índice de refracción ny los R1radios R2. El parámetro alphasimplemente indica la pendiente de las líneas cian discontinuas.

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
 \begin{tikzpicture}[bullet/.style={circle,black,fill,inner sep=1.8pt},
   every label/.append style={black},
   declare function={lensf(\n,\d,\Rone,\Rtwo)=1/(
   (\n-1)*(1/\Rone-1/\Rtwo+(\n-1)*\d/(\n*\Rone*\Rtwo)));
   startangle(\h,\r)=asin(\h/\r);},
   lens/.cd,n/.initial=1.7,R1/.initial=3.6,R2/.initial=-3.9,d/.initial=0.6,
   h/.initial=1.8,alpha/.initial=20]
  %short cut 
  \def\pv#1{\pgfkeysvalueof{/tikz/lens/#1}} 

  \draw [fill=lightgray!50, very thick]  
    ({-\pv{d}/2-cos(90-startangle(\pv{h},\pv{R1}))},\pv{h})
    arc[start angle={startangle(\pv{h},\pv{R1})},delta 
    angle={-2*startangle(\pv{h},\pv{R1})},radius=\pv{R1}]
    --++ ({\pv{d}+cos(90-startangle(\pv{h},\pv{R1}))+cos(90+startangle(\pv{h},\pv{R2}))},0)
    arc[start angle={-startangle(\pv{h},\pv{R2})},delta 
    angle={2*startangle(\pv{h},\pv{R2})},radius=\pv{R2}]  
    -- cycle;
   \draw[very thick,dashed] (0,-1.2*\pv{h}) --  (0,1.2*\pv{h});
   \draw[very thick] (-1.2*\pv{R1}-\pv{d}/2,0) -- (-1.2*\pv{R2}+\pv{d}/2,0);
   \draw[cyan,dashed,thick] ({-\pv{d}/2-\pv{R1}},0)   
    node[bullet,label=below:$C_1$]{}
   -- node[sloped,above]{$R_1$} ++ (\pv{alpha}:\pv{R1});
   \path ({-lensf(\pv{n},\pv{d},\pv{R1},\pv{R2})},0) 
    node[bullet,label=below:$F_2$]{};
   \draw[cyan,dashed,thick] ({\pv{d}/2-1*\pv{R2}},0)    
    node[bullet,label=above:$C_2$]{}
   -- node[sloped,below]{$R_2$} ++ (\pv{alpha}:\pv{R2});
   \path ({lensf(\pv{n},\pv{d},-1*\pv{R2},-1*\pv{R1})},0) 
    node[bullet,label=above:$F_1$]{};
 \end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada