[Tex/LaTex] TikZ: How to make a convex lens

tikz-pgf

How can I make a convex lens with TikZ?

I tried using arcs but this doesn't look right.

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \pgfmathsetmacro{\xr}{0.35}
  \pgfmathsetmacro{\yr}{2}

  \draw (0, 0) coordinate (O) arc[x radius = \xr cm, y radius = \yr cm,
  start angle = 90, end angle = 270];
  \draw (O) arc[x radius = \xr cm, y radius = \yr cm,
  start angle = 90, end angle = -90];
\end{tikzpicture}
\end{document}

I would like the arcs to meet at a sharp corner not rounded.

enter image description here

Best Answer

Here is one suggestion:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \pgfmathsetmacro{\lensRadius}{2}
  \pgfmathsetmacro{\lensHeight}{1}
  \pgfmathsetmacro{\startAngle}{asin(\lensHeight/\lensRadius)}

  \draw (0,\lensHeight) arc[start angle=180-\startAngle,delta angle=2*\startAngle,radius=\lensRadius];
  \draw (0,\lensHeight) arc[start angle=\startAngle,delta angle=-2*\startAngle,radius=\lensRadius];
\end{tikzpicture}
\end{document}

enter image description here

Slightly modified, for filling, and better line ends:

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
  \pgfmathsetmacro{\lensRadius}{2}
  \pgfmathsetmacro{\lensHeight}{1}
  \pgfmathsetmacro{\startAngle}{asin(\lensHeight/\lensRadius)}

  \draw [fill=blue!15]  (0,\lensHeight)
  arc[start angle=180-\startAngle,delta angle=2*\startAngle,radius=\lensRadius]
  arc[start angle=-\startAngle,delta angle=2*\startAngle,radius=\lensRadius]
   -- cycle; % to get a better line end
\end{tikzpicture}
\end{document}

enter image description here