PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : clip in tikz



conk
14-03-2009, 22:47
Hallo, mit:

\draw (0,0) circle (1.3ex);
\draw (0,0) circle (1.5ex);
\draw (0,0) circle (1.7ex);
\draw (0,0) circle (1.9ex);

habe ich es geschafft circles zu zeichnen (Bild: links). Wie kann ich (mittels eines rectangles+clip) nun einen teil wegschneiden (Bild rechts)?

http://www.imgbox.de/users/public/images/v55057h205.png

Ich habe es mit clip versucht und bin kläglich gescheitert :(
Kann mir jemand die Lösung sagen? Dankeschön!


p.s.
besteht auch die möglichkeit es folgendermaßen auszuschneiden?
http://www.imgbox.de/users/public/images/z4419g205.png
so würde es mir nämlich besser gefallen.

krihaa
14-03-2009, 23:57
Hallo,

ich weiß nicht, ob du es unbedingt mit der clip-Funktion machen willst/musst. Falls nicht, dann mach es doch einfach mit arcs, siehe Beispiel. Für weniger Code z.B. auch mit Schleifen.

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (-45:1.3ex) arc (-45:45:1.3ex);
\draw (135:1.3ex) arc (135:225:1.3ex);
\draw (-45:1.5ex) arc (-45:45:1.5ex);
\draw (135:1.5ex) arc (135:225:1.5ex);
\draw (-45:1.7ex) arc (-45:45:1.7ex);
\draw (135:1.7ex) arc (135:225:1.7ex);
\draw (-45:1.9ex) arc (-45:45:1.9ex);
\draw (135:1.9ex) arc (135:225:1.9ex);
\end{tikzpicture}
\qquad
\begin{tikzpicture}
\foreach \x in {1.3,1.5,1.7,1.9}
\foreach \y in {-45,135}
{\draw (\y:\x ex) arc (\y:\y+90:\x ex);}
\end{tikzpicture}
\end{document}
Gruß

conk
15-03-2009, 01:05
die lösung mit arc find ich super, danke!

wie kann ich den output verschieben mit x und y koordinaten? Würde das gerne nach rechtsverschieben in einem anderen tikz bild von mir, weiß aber nicht wie, da in deinem code mit arc irgendwie nur winkel/radius angaben gemacht sind.

krihaa
15-03-2009, 11:25
Hallo,

dafür kannst du die optionalen Parameter xshift und yshift benutzen, siehe Beispiel.

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (-45:1.3ex) arc (-45:45:1.3ex);
\draw (135:1.3ex) arc (135:225:1.3ex);
\draw (-45:1.5ex) arc (-45:45:1.5ex);
\draw (135:1.5ex) arc (135:225:1.5ex);
\draw (-45:1.7ex) arc (-45:45:1.7ex);
\draw (135:1.7ex) arc (135:225:1.7ex);
\draw (-45:1.9ex) arc (-45:45:1.9ex);
\draw (135:1.9ex) arc (135:225:1.9ex);
\foreach \y in {-45,135}
\foreach \x in {1.3,1.5,1.7,1.9}
{\draw[xshift=2cm,yshift=-1cm] (\y:\x ex) arc (\y:\y+90:\x ex);}
\end{tikzpicture}
\end{document}
Wenn du allerdings nur dieses eine Gebilde im tikzpicture hast, dann helfen die shifts nichts und du musst etwas tricksen.

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \y in {-45,135}
\foreach \x in {1.3,1.5,1.7,1.9}
{\draw (\y:\x ex) +(2,-1) arc (\y:\y+90:\x ex);}
\end{tikzpicture}
\end{document}
Gruß

conk
15-03-2009, 11:43
vielen dank, hat geklappt!