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}

gefragt 15 Apr '15, 18:19

Emil's gravatar image

Emil
13114
Akzeptiert-Rate: 0%

bearbeitet 21 Jun '16, 17:40

saputello's gravatar image

saputello
11.1k174365

Das sind mehrere Fragen auf einmal. Es ist meist besser, Multifragen in handliche Einzelprobleme aufzuteilen.

(15 Apr '15, 19:04) saputello

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}

alt text

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}

alt text

Permanenter link

beantwortet 17 Apr '15, 02:55

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

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 graphdrawing library verwendet. Dann muss man allerdings mit LuaLaTeX übersetzen, für die internen Berechnungen von graphdrawing. Dann braucht man keine Berechnungen, ich habe nur die Biegung von 10 Grad für die Kanten eingestellt.

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}

alt text

Permanenter link

beantwortet 18 Apr '15, 20:04

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 50%

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
Permanenter link

beantwortet 17 Apr '15, 00:04

Emil's gravatar image

Emil
13114
Akzeptiert-Rate: 0%

bearbeitet 17 Apr '15, 00:04

Wie ich schon sagte, kann man das in einer Schleife machen.

(17 Apr '15, 07:41) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×76
×50
×35
×20

gestellte Frage: 15 Apr '15, 18:19

Frage wurde gesehen: 19,131 Mal

zuletzt geändert: 21 Jun '16, 17:40