Seite 1 von 2
Spielbaum
Verfasst: Do 8. Aug 2019, 20:17
von mango1234
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}[
thin,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=25mm},
level 3/.style={sibling distance=20mm},
every circle node/.style={minimum size=0mm, inner sep=0mm}
]
\node[circle,fill] (root) {}
child { node [circle,draw] {}
child { node [circle,fill] {}
edge from parent
}
child { node [circle,draw] {}
edge from parent
}
edge from parent
}
child { node [circle,fill] {}
child { node [circle,fill] (y2) {}
child { node [circle,draw] {}
edge from parent
}
child { node [circle,draw] {}
edge from parent
}
edge from parent
}
child { node [circle,draw] (z4) {}
child { node [circle,draw] {}
edge from parent
}
child { node [circle,draw] {}
edge from parent
}
edge from parent
}
}
%\draw (y2) -- (z4)
\end{tikzpicture}
\caption{mit perfect recall}\label{SP12}
\end{figure}
\enddocument
hab mal wieder ein Problem mit einem Spielbaum, wie kann ich zwischen y2 und z4 eine gestrichelte Linie ziehen? bei einem anderem Spielbaum hab ich es mit draw gemacht aber hier funktioniert es irgendwie nicht

danke schon mal für eure Hilfe
Verfasst: Do 8. Aug 2019, 20:47
von Bartman
Da dashed auch alle weiteren Kanten und Knoten im Baum beeinflusst, müssen diese mit solid in den Ausgangszustand zurückgesetzt werden.
\documentclass[tikz, border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[
thin,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=25mm},
level 3/.style={sibling distance=20mm},
every circle node/.style={minimum size=0mm, inner sep=0mm}
]
\node[circle,fill] (root) {}
child { node [circle,draw] {}
child { node [circle,fill] {}
edge from parent
}
child { node [circle,draw] {}
edge from parent
}
edge from parent
}
child { node [circle,fill] {}
child [dashed] { node [circle,fill] (y2) {}
child [solid] { node [circle,draw] {}
edge from parent
}
child [solid] { node [circle,draw] {}
edge from parent
}
edge from parent
}
child [dashed] { node [circle,draw] (z4) {}
child [solid] { node [circle,draw] {}
edge from parent
}
child [solid] { node [circle,draw] {}
edge from parent
}
edge from parent
}
};
\end{tikzpicture}
\end{document}
Wenn der Baum ohne Knoten gezeichnet werden soll, dann kannst Du den Quelltext viel schlanker gestalten.
\documentclass[tikz, border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[
thin,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=25mm},
level 3/.style={sibling distance=20mm}
]
\coordinate
child {
child
child
}
child {
child [dashed] {% (y2)
child [solid]
child [solid]
}
child [dashed] {% (z4)
child [solid]
child [solid]
}
}
;
\end{tikzpicture}
\end{document}
Verfasst: Fr 9. Aug 2019, 09:37
von mango1234
danke aber eigentlich brauch ich ja die gestrichelte Linie zwischen den knoten y2 und z4 und nicht die äste...
Verfasst: Fr 9. Aug 2019, 09:43
von Bartman
Dann übergib doch dem Befehl \draw die angesprochene Option.
Sorge bitte außerdem für ein vollständiges Beispiel. Es sollte also in Deinem Fall keine Fehlermeldungen (fehlende Semikola oder Leerzeilen in der Optionenliste der Umgebung) ausgeben.
Verfasst: Fr 9. Aug 2019, 09:49
von mango1234
das hab ich ja zu beginn probiert mit
Verfasst: Fr 9. Aug 2019, 09:52
von Bartman
Es funktioniert also auch nicht mit abschließendem Semikolon?
\draw [dashed] (y2) -- (z4);
Verfasst: Fr 9. Aug 2019, 09:56
von mango1234
füge ich das ein kompiliert die ganze Arbeit nicht mehr. und probiere ich es ganz alleine in einem extra Dokument geht es auch nicht
Verfasst: Fr 9. Aug 2019, 10:05
von mango1234
Hier nochmals das ganze:
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
thin,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=25mm},
level 3/.style={sibling distance=20mm}
]
\coordinate
child {
child
child
}
child {
child [dashed] (y2) {
child [solid]
child [solid]
}
child [dashed] (z4) {
child [solid]
child [solid]
}
}
\draw [dashed] (y2) -- (z4)
;
\end{tikzpicture}
\end{document}
Verfasst: Fr 9. Aug 2019, 10:56
von mango1234
jetzt sieht der ganze baum anders aus. ich möchte einfach nur einen horizontalen strichlierten strich zwischen den knoten
Verfasst: Fr 9. Aug 2019, 11:02
von Bartman
Die Maßnahmen sind kein Geheimnis, sondern können im Abschnitt 21.3 "Naming Child Nodes" der Dokumentation von
pgf/TikZ nachgelesen werden.
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[
thin,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=25mm},
level 3/.style={sibling distance=20mm}
]
\coordinate
child {
child
child
}
child {
child { coordinate (y2)
child
child
}
child { coordinate (z4)
child
child
}
}
;% Semikolon für \coordinate
\draw [dashed] (y2) -- (z4);% Semikolon für \draw
\end{tikzpicture}
\end{document}