PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TIKZ: Halbkreise zeichnen, (kovexe und konkave Linse zeichnen)



zac
25-03-2012, 20:01
Ich würde gerne Linsen (konvex und konkav) mit TIKZ zeichnen. Ich habe gedacht, dass ich da zwei halbkreise aneinander setze (konvexer Fall). Ich komme damit aber irgendwie gar nicht zurecht. Kann mir einer sagen wie das geht? Schön wäre es auch, wenn ich die Linse dann mit einer Farbe füllen könnte.

rais
25-03-2012, 21:53
Moin moin,

Ich würde gerne Linsen (konvex und konkav) mit TIKZ zeichnen. Ich habe gedacht, dass ich da zwei halbkreise aneinander setze (konvexer Fall).
ergäben zwei Halbkreise -- gleichen Radius vorausgestzt -- nicht einen Vollkreis?
Fast 1:1 aus der tikz-Doku, was imho einer bikonkaven Linse entsprechen könnte:


\documentclass{article}
\usepackage{tikz}

\begin{document}
\pagestyle{empty}
\begin{tikzpicture}
\clip (0,0) circle (1cm);
\fill[red] (1,0) circle (1cm);
\end{tikzpicture}
\end{document}

BTW: bei pstricks gäbe es für die Darstellung von Linsen das pst-lens-Paket, afair.

MfG

zac
26-03-2012, 09:18
ja, dass mit den halbkreisen war dumm von mir beschrieben. ich meinte eigentlich kreisausschnitte. Ich habe jetzt folgendes Problem. Ich habe mine Linse jetzt so definiert


\clip (-4.5,0) circle (5cm);
\fill[color=farbe1] (4.5,0) circle (5cm);

Dabei verschiebt sich das ganze Bild nach rechts, obwohl links ja nichts mehr ist. Ich würde das Bild aber gern an der Koordinate (0,0) zentrieren. Gibt es diese Option?

Gibt es eine bessere Möglichkeit knonkave Linsen zu zeichnen als diese:


\fill[color=cyan] (-1,-2) rectangle (1,2);
\fill[color=white] (-4,0) circle (3.75cm);
\fill[color=white] (4,0) circle (3.75cm);


Da scheint PStricks vielleicht besser geeignet zu sein, wenn es dazu ein extra package gibt. Ich arbeite mich aber gerade in TIKZ ein und würde gerne erst einmal sehen, was TIKZ alles zu bieten hat.

LuPi
26-03-2012, 11:05
Eine Möglichkeit hierfür (tritt auch bei ähnlichen Konstrukten auf) ist die
Verwendung der pgfinterruptboundingbox-environment (siehe Manual).

rais
26-03-2012, 21:29
Moin moin,


Gibt es eine bessere Möglichkeit knonkave Linsen zu zeichnen als diese:


\fill[color=cyan] (-1,-2) rectangle (1,2);
\fill[color=white] (-4,0) circle (3.75cm);
\fill[color=white] (4,0) circle (3.75cm);


so nicht allzu viele verschieden große Linsen bzw. Linsen mit unterschiedlicher Krümmung dargestellt werden sollen, tut vllt auch so etwas:


\documentclass{article}
\usepackage{tikz}
\colorlet{farbe1}{black!30}
\newcommand*\lensbiconcave[3]{%
\fill[color=#3] (#1,#2) ++(0,-2) arc(-16.602:16.602:7) -- ++(1,0) arc(163.398:196.602:7) -- cycle ++(-0.5,0)
}%\lensbiconcave{x}{y}{col}
\newcommand*\lensplanoconcave[3]{%
\fill[color=#3] (#1,#2) ++(0,-2) -- ++(0,4) -- ++(1,0) arc(163.398:196.602:7) -- cycle ++(-0.5,0)
}%\lensplanoconcave{x}{y}{col}
\newcommand*\lensplanoconvex[3]{%
\fill[color=#3] (#1,#2) ++(0,2) -- ++(0,-4) -- ++(0.5,0) arc(-16.602:16.602:7) -- cycle ++(-0.25,-4)
}%\lensplanoconvex{x}{y}{col}
\newcommand*\lensbiconvex[3]{%
\fill[color=#3] (#1,#2) ++(0,2) arc(163.398:196.602:7) -- ++(0.5,0) arc(-16.602:16.602:7) -- cycle ++(-0.25,-4)
}%\lenspbiconvex{x}{y}{col}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}
\draw[help lines,step=1] (-1,-3) grid (8,3);
\lensbiconcave{0}{0}{cyan!30} node[below, black]{L1};
\lensplanoconcave{2}{0}{farbe1} node[below, black]{L2};
\lensplanoconvex{4}{0}{blue!50} node[below, black]{L3};
\lensbiconvex{6}{0}{farbe1} node[below, black]{L4};
\draw[very thick, red!80, ->] (-1,0) -- +(10,0);% optische Achse
\end{tikzpicture}
\end{document}

MfG