Beim googlen habe ich eine Bild gefunden, dass mir schon recht gut gefällt. link text Allerdings würde ich gerne beliebigen Text in die Nodes schreiben und die Pfeile (frei) beschriften können. Ein Node sollte genau oben sein. Leider habe ich keine Idee wie ich das mache. Hier noch der Code aus dem link leicht abgewandelt: Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} \def \n {10} \def \radius {3cm} \def \margin {8} % margin in angles, depends on the radius \foreach \s in {1,...,\n} { \node[draw, circle] at ({360/\n * (\s - 1)}:\radius) {$\s$}; \draw[<-, >=latex] ({360/\n * (\s - 1)+\margin}:\radius) arc ({360/\n * (\s - 1)+\margin}:{360/\n * (\s)-\margin}:\radius); } \end{tikzpicture} \end{document} |
Hier ist noch ein Vorschlag, bei dem die Pfeile in der selben Schleife gleich mit beschriftet werden und der erste Knoten immer oben (also bei 90°) liegt, auch wenn man eine andere Knotenanzahl wählt: Open in Online-Editor
\documentclass[margin=5pt]{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \def \n {9} \def \circleradius {3cm} \def \noderadius{1em} \def \margin {8} % margin in angles, depends on the radius \def \arrowtextshift{1em}% Verschiebung Text gegenüber Pfeil \foreach[count=\j from 0]\nodetext/\arrowtext in {a/xx,+/t,3/?,k/test,du/du,m/1,!/c,K/Test,q/R}{ \pgfmathsetmacro\arrowstartangle{90-360/\n*\j-\margin} \pgfmathsetmacro\arrowendangle{90-360/\n*(\j+1)+\margin} \node[draw, circle,inner sep=0pt,minimum size=2*\noderadius] at ({90-360/\n * \j}:\circleradius) {\nodetext}; \draw[->, >=latex](\arrowstartangle:\circleradius) arc[start angle=\arrowstartangle,end angle=\arrowendangle,radius=\circleradius]; \node[node font=\footnotesize] at ({.5*(\arrowstartangle+\arrowendangle)}:{\circleradius+\arrowtextshift}){\arrowtext}; } \end{tikzpicture} \end{document} Oder als Alternative bei der Beschriftung der Pfeile Open in Online-Editor
\documentclass[margin=5pt]{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \def \n {9} \def \circleradius {3cm} \def \noderadius{1em} \def \margin {8} % margin in angles, depends on the radius \foreach[count=\j from 0] \nodetext/\arrowtext in {a/xx,+/t,3/?,k/test,du/du,m/1,!/c,K/Test,q/R}{ \pgfmathsetmacro\arrowstartangle{90-360/\n*\j-\margin} \pgfmathsetmacro\arrowendangle{90-360/\n*(\j+1)+\margin} \node[draw, circle,inner sep=0pt,minimum size=2*\noderadius] at ({90-360/\n * \j}:\circleradius) {\nodetext}; \draw[->, >=latex](\arrowstartangle:\circleradius) arc[start angle=\arrowstartangle,end angle=\arrowendangle,radius=\circleradius] node[pos=.5,above,sloped,allow upside down]{\arrowtext}; } \end{tikzpicture} \end{document} beantwortet 17 Apr '15, 02:55 esdd Vielen Dank. Aber bei der zweiten Variante erscheinen bei mir die Pfeiltexte genau in der Mitte des Kreises. Ich habe das auch nochmal hier ausprobiert mit dem gleichen Ergebnis: http://latex.informatik.uni-halle.de/latex-online/latex.php
(17 Apr '15, 15:56)
Emil
1
@Emil Der von Dir verlinkte Editor verwendet die alte pgf/TikZ Version 2.10. Die aktuelle Version 3.0 ist seit deutlich über einem Jahr auf CTAN und bei TeX Live sowie MiKTeX verfügbar. Um das abgebildete Ergebnis zu erzeugen, brauchst Du nur oberhalb des Beispiels auf "Open in Online-Editor" zu klicken.
(17 Apr '15, 16:42)
esdd
|
Mit TikZ 3.0 geht es noch kürzer, wenn man die Komplettbeispiel analog der Antwort von Emil: Open in Online-Editor
\documentclass{article} \usepackage{tikz} \usetikzlibrary{graphdrawing,graphs,arrows.meta,quotes} \usegdlibrary{circular} \begin{document} \tikz [>=Stealth] \graph [simple necklace layout, node distance=2cm, nodes={circle,draw}, grow'=down, edges={bend left=10}] { m ->["m"] du ->["du"] k ->["e"] 3 ->["w"] + ->["y"] a ->["x"] b ->["12"] q ->["9"] o ->["?"] ! ->["!"] m}; \end{document} beantwortet 18 Apr '15, 20:04 stefan ♦♦ Vielen Dank. Wird Zeit meine System zu aktualisieren...
(20 Apr '15, 12:06)
Emil
|
@saputello Danke. Das ganze sieht jetzt so aus und so gefällt es mir. Open in Online-Editor
\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} \def \n {10} \def \radius {3cm} \def \radi {3.2cm} \def \margin {8} % margin in angles, depends on the radius \foreach \s/\nodetext in {1/a,2/+,3/3,4/k,5/du,6/m,7/!,8/o,9/q,10/b} { \node[draw, circle] at ({360/\n * (\s - 1) + 270}:\radius) {\nodetext}; \draw[<-, >=latex] ({360/\n * (\s - 1)+\margin+270}:\radius) arc ({360/\n * (\s - 1)+\margin+270}:{360/\n * (\s)+270-\margin}:\radius); } \foreach \s/\nodetext in {1/x,2/y,3/w,4/e,5/du,6/m,7/!,8/?,9/9,10/12} { \node at ({360/\n * (\s -1) + 270 - 180/\n}:\radi) {\footnotesize \nodetext}; arc ({360/\n * (\s - 1)+\margin+270}:{360/\n * (\s)+270-\margin}:\radi); } \end{tikzpicture} \end{document beantwortet 17 Apr '15, 00:04 Emil Wie ich schon sagte, kann man das in einer Schleife machen.
(17 Apr '15, 07:41)
saputello
|
Das sind mehrere Fragen auf einmal. Es ist meist besser, Multifragen in handliche Einzelprobleme aufzuteilen.