PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tikz: circle entlang Pfad füllen



Horus
27-11-2014, 10:06
Hallo!

ich habe einen Pfad, der an allen "Absetzstellen" einen dicken farbigen Punkt haben soll. Das habe ich mehr schlecht als Recht so hinbekommen:


\documentclass{scrartcl}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[radius=0.1cm]
\draw[color=red] (0,0) circle -- (0,-1) circle -- (0,-2) circle -- (1,-2) circle -- (1,-1) circle -- (1,0) circle;
\draw[xshift=1cm] (0,0) circle -- (0,-1) circle -- (0,-2) circle -- (1,-2) circle -- (1,-1) circle -- (1,0) circle;
\end{tikzpicture}
\end{document}
Die circles habe ich leider nicht hinbekommen zu füllen, also kein Kreis, sondern ein dicker Punkt. Wenn ich statt \draw nun \fill benutze, wird der ganze Pfad mir gefüllt, circle[fill=red] und ähnliches hatten leider keine Auswirkungen.

Da es noch einige Pfade/Punkte mehr sein werden, frage ich mich auch, wie ich das mit weniger Schreibarbeit hinbekommen kann, also z.B. das circle an jeder Stelle vermeiden.

Danke!

esdd
27-11-2014, 11:30
Verwende gefüllte circle Nodes.


\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
myfilledcircle/.style={
circle,fill,inner sep=0pt,minimum size=.2cm
}
]
\draw[color=red]
(0,0) node[myfilledcircle]{} --
(0,-1) node[myfilledcircle]{} --
(0,-2) node[myfilledcircle]{} --
(1,-2);
\draw[xshift=1cm]
(0,0) node[myfilledcircle]{} --
(0,-1) node[myfilledcircle]{} --
(0,-2) node[myfilledcircle]{} --
(1,-2) node[myfilledcircle]{} --
(1,-1) node[myfilledcircle]{} --
(1,0) node[myfilledcircle]{};
\end{tikzpicture}
\end{document}

Um Schreibarbeit zu sparen, kannst Du foreach Schleifen nutzen


\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[myfilledcircle/.style={circle,fill,inner sep=0pt,minimum size=.2cm}]
\foreach[remember=\p as \lastp (initially {0,0})]
\p in {{0,-1},{0,-2},{1,-2}}
\draw[red](\lastp)node[myfilledcircle]{}--(\p);
\foreach[remember=\p as \lastp (initially {0,0})]
\p in {{0,-1},{0,-2},{1,-2},{1,-1},{1,0}}
\draw[xshift=1cm](\lastp)node[myfilledcircle]{}--(\p);
\node[xshift=1cm,myfilledcircle]at(1,0){};
\end{tikzpicture}
\end{document}

und/oder die Punkte in einer Matrix setzen:


\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[
matrix of nodes,
nodes in empty cells,
inner sep=0pt,outer sep=0pt,
row sep={1cm,between origins},
column sep={1cm,between origins},
nodes={circle,fill,minimum size=.2cm},
column 1/.style=red
](m){
&&\\
&&\\
&&\\
};
\foreach \c/\f in {1/red,2/.,3/.}{
\foreach[count=\lr] \r in {2,3}{
\path(m-\lr-\c)edge[\f](m-\r-\c);
}
}
\path
(m-3-1)edge[red](m-3-2)
(m-3-2)edge(m-3-3);
\end{tikzpicture}
\end{document}

Gruß
Elke