Bikonkave Linse in Tikz

Bikonkave Linse in Tikz

Hallo zusammen und frohe Weihnachten (auch wenn es spät ist, lol). Ich möchte eine bikonkave Linse wie die unten zeichnen, aber ich schaffe es wirklich nicht.

Bildbeschreibung hier eingeben

Das ist, was ich geschafft habe zu schreiben, aber es ist nicht das Ergebnis, das ich erzielen möchte.

\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}

Antwort1

Dies zeichnet solche Linsen. Sie können die Radien unterschiedlich wählen, aber natürlich können Sie sie auch gleich setzen. Die Positionen der Brennpunkte werden mit demLensmaker-Gleichung. Anstelle von Makros werden pgf-Schlüssel verwendet. Die Parameter sind die Höhe h, die Dicke d, der Brechungsindex nund die Radien R1und R2. Der Parameter alphagibt lediglich die Steigung der gestrichelten cyanfarbenen Linien an.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen