Ich möchte eine symmetrische bikonvexe Linse zeichnen. Idealerweise gebe ich die Position des Linsenmittelpunktes, den Krümmungsradius der Außenflächen und den Abstand vom Linsenmittelpunkt (optischer Achse) zum Linsenrand vor. Außerdem sollte man eine Füllfarbe vorgeben können. Ein entsprechendes Analogon für bikonkave Linsen wäre auch Klasse. gefragt 02 Aug '14, 21:45 nonlinearx |
LinsenhöheHier mal was für bikonvexe Linsen. Die Benutzung ist Open in writeLaTeX
\convex[<tikz Optionen>]{<r>}{<h>}(<x>,<y>); mit den im Bild dargestellten Parametern. Open in writeLaTeX
\documentclass{article} \usepackage{tikz} \makeatletter \newcommand\convex[1][]{\@convex{#1}} \def\@convex#1#2#3(#4,#5){ \pgfmathsetmacro\@alpha{acos(1-(#3)/(#2)} \draw[#1] ({(#4)+(#3)},{#5}) arc (0:\@alpha:#2) arc (180-\@alpha:180:#2) arc (180:180+\@alpha:#2) arc (-\@alpha:0:#2) -- cycle; } \makeatother \begin{document} \begin{tikzpicture} \convex{1}{.5}(0,0); \convex[thick,fill=blue!50,draw=blue]{1}{.5}(2,0); \convex[thick,fill=blue!50,draw=blue]{2}{.5}(4,0); \convex[thick,fill=blue!50,draw=blue]{1}{1}(6,0); \convex[thick,fill=blue!50,draw=blue]{.5}{1}(9,0); \end{tikzpicture} \end{document} Hier noch eine Animation. Die Form der Linse wird als Funktion des Abstandes vom Mittelpunkt verändert: LinsendickeDie Benutzung ist gleich wie oben Open in writeLaTeX
\convex[<tikz Optionen>]{<r>}{<h>}(<x>,<y>); mit den im Bild dargestellten Parametern. Open in writeLaTeX
\documentclass{article} \usepackage{tikz} \makeatletter \newcommand\convex[1][]{\@convex{#1}} \def\@convex#1#2#3(#4,#5){ \pgfmathsetmacro\@alpha{asin((2*#3)/(2*#2))} \draw[#1] ({#4},{#5+#3}) arc (\@alpha:-\@alpha:#2) arc (180+\@alpha:180-\@alpha:#2) -- cycle; } \makeatother \begin{document} \begin{tikzpicture} \convex{1}{.5}(0,0); \convex[thick,fill=blue!50,draw=blue]{1}{.5}(2,0); \convex[thick,fill=blue!50,draw=blue]{2}{.5}(4,0); \convex[thick,fill=blue!50,draw=blue]{1}{1}(6,0); \end{tikzpicture} \end{document} Auch hier wieder mit Animation. Dieses Mal wird die Linsendicke variiert. Konkave LinsenDie Benutzung ist analog zur konvexen Linse Open in writeLaTeX
\concave[<tikz Optionen>]{<r>}{<h>}(<x>,<y>); mit den im Bild dargestellten Parametern. Open in writeLaTeX
\documentclass[tikz]{standalone} \makeatletter \newcommand\concave[1][]{\@concave{#1}} \def\@concave#1#2#3(#4,#5){ \pgfmathsetmacro\@alpha{asin((2*#3)/(2*#2))} \pgfmathsetmacro\@height{#2-.5*sqrt(4*(#2)^2-(2*#3)^2)} \draw[#1] ({#4},{#5+#3}) -- ++(1.5*\@height,0) arc (180-\@alpha:180+\@alpha:#2) -- ++(-3*\@height,0) arc (-\@alpha:\@alpha:#2) -- cycle; } \begin{document} \begin{tikzpicture}[dot/.style={draw,fill,circle,inner sep=1pt}] \concave[thick,fill=blue!50,draw=blue]{3}{2}(0,0); \node[dot,label={left:$(x,y)$}] (O) at (0,0) {}; \draw[<->] (O) -- node[left] {$h$} +(0,2); \draw (1.5*\@height,2) arc (180-\@alpha:180-\@alpha/2:3) node[dot] {} -- node[above] {$r$} ++(180-\@alpha/2:-3) node[dot] (m) {}; \draw[help lines] (m) -- +(-1,0) arc (180:180-\@alpha/2:1) node[below left] {$\alpha$}; \end{tikzpicture} \end{document} beantwortet 02 Aug '14, 22:06 Henri Sieht gut aus, danke. Jetzt muss ich nur noch versuchen das zu verstehen ;) Leider funktioniert das mit dem Abstand nicht ganz so wie gedacht. Ich meinte damit bezogen auf deine Bilder den Abstand vom Linsenmittelpunkt (Schnittpunkt der beiden Symmetrieachsen) zum oberen bzw. unteren Ende der Linse. Wenn ich einen Zahlenwert z.B. in cm eingebe, ist der Abstand aber deutlich größer als vorgegeben. Wenn ich das richtig verstehe, meint der von dir verwendete Abstand den Wert bis zum linken oder rechten Ende der Linse!?
(02 Aug '14, 22:09)
nonlinearx
@nonlinearx Siehe aktualisierte Antwort.
(03 Aug '14, 00:06)
Henri
Was muss ich ändern, damit ich anstelle der seitlichen Dicke (bei dir h) den Abstand nach oben vorgeben, also den Linsendurchmesser beeinflussen kann.
(03 Aug '14, 09:04)
nonlinearx
@nonlinearx Ich berechne den Winkel nach der Formel aus Wikipedia: Kreissegment. Da Du Dich anscheinend überhaupt nicht mit der Antwort auseinander gesetzt hast, sondern lediglich auf der "Tu es für mich" Einstellung beharrst, lies bitte die Anleitung zu PGF/TikZ bevor Du irgendwelche weiteren Fragen dazu stellst.
(03 Aug '14, 11:53)
Henri
|
Für PSTricks würde mir spontan
pst-optic
einfallen.Kenne ich, aber ich möchte mich auf tikz konzentrieren.