Ich habe diesen Code
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,>=stealth',auto,node distance=3cm,
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
\node[main node] (1) {a};
\node[main node] (2) [right of=1] {b};
\node[main node] (3) [right of=2] {c};
\node[main node] (4) [right of=3] {d};
\path[every node/.style={font=\sffamily\small}]
(1) edge node [right] {} (2)
(2) edge node [right] {} (3)
(3) edge node [right] {} (4)
(4) edge node [left] {} (1);
\end{tikzpicture}
\end{document}
das erzeugt diese Grafik:
Mein Ziel ist es, ein Diagramm wie dieses zu erstellen:
Entschuldigen Sie die schlechte Zeichnung. Ich habe verschiedene Kombinationen von (4) edge node [bend left] {} (1);
und (4) edge node [loop left] {} (1);
ohne Erfolg ausprobiert.
Antwort1
Um einen anderen Ansatz zu zeigen: Dieser Anwendungsfall ist genau das, wofür die Schlüssel bend left
und bend right
erstellt wurden:
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,>=stealth',auto,node distance=3cm,
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
\node[main node] (1) {a};
\node[main node] (2) [right of=1] {b};
\node[main node] (3) [right of=2] {c};
\node[main node] (4) [right of=3] {d};
\path[every node/.style={font=\sffamily\small}]
(1) edge node [right] {} (2)
(2) edge node [right] {} (3)
(3) edge node [right] {} (4)
(4) edge[bend right] node [left] {} (1);
\end{tikzpicture}
\end{document}
Diese Tasten akzeptieren auch einen optionalen <angle>
Wert, um die Tasten in
und gleichzeitig out
symmetrisch zu setzen, so dass das Schreiben
(4) edge[bend right=90] node [left] {} (1);
wird darin enden, dass
Wenn eine asymmetrische Anordnung der Tasten in
und out
erforderlich ist,CFR-Lösungist der richtige Weg.
Antwort2
Ein Ansatz besteht darin, \draw
die eingehenden und ausgehenden Winkel zu verwenden und anzugeben. Durch einfaches Angeben der Knotennamen wird der Pfad in Bezug auf den Knotenmittelpunkt erstellt (obwohl nicht von dort aus gezeichnet wird). Sie können auch Knotenanker angeben. Beispielsweise verbindet die rote Linie (4.north)
mit (1.north)
.
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,>=stealth',auto,node distance=3cm,
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
\node[main node] (1) {a};
\node[main node] (2) [right of=1] {b};
\node[main node] (3) [right of=2] {c};
\node[main node] (4) [right of=3] {d};
\draw [->] (1) -- (2);
\draw [->] (2) -- (3);
\draw [->] (3) -- (4);
\draw [->] (4) to [out=150,in=30] (1);
\draw [->,red] (4.north) to [out=150,in=30] (1.north);
\end{tikzpicture}
\end{document}
Antwort3
Es gibt mehrere Möglichkeiten, Kurven zu zeichnen, falls das die Frage ist. Hier ist eine:
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
[
->,
>=stealth',
auto,node distance=3cm,
thick,
main node/.style={circle, draw, font=\sffamily\Large\bfseries}
]
\node[main node] (1) {a};
\node[main node] (2) [right of=1] {b};
\node[main node] (3) [right of=2] {c};
\node[main node] (4) [right of=3] {d};
\path[every node/.style={font=\sffamily\small}]
(1) edge node [right] {} (2)
(2) edge node [right] {} (3)
(3) edge node [right] {} (4);
\draw
(4) [out=150, in=20] to (1);
\end{tikzpicture}
\end{document}
So können Sie es zu einem Teil des Originals machen \path
( edge
indem Sie die Winkel ein wenig variieren):
\path[every node/.style={font=\sffamily\small}]
(1) edge node [right] {} (2)
(2) edge node [right] {} (3)
(3) edge node [right] {} (4)
(4) edge [out=150, in=90] (1);