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, 12:19

Emil's gravatar image

Emil
1314
Akzeptiert: 100%

bearbeitet 21 Jun, 11:40

saputello's gravatar image

saputello
18.4k22352

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

(15 Apr '15, 13: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 16 Apr '15, 20:55

esdd's gravatar image

esdd
14.2k53251

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, 09: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, 10: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, 14:04

stefan's gravatar image

stefan ♦♦
5.8k12134

Vielen Dank. Wird Zeit meine System zu aktualisieren...

(20 Apr '15, 06: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 16 Apr '15, 18:04

Emil's gravatar image

Emil
1314

bearbeitet 16 Apr '15, 18:04

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

(17 Apr '15, 01:41) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×51
×44
×27
×17

Frage gestellt: 15 Apr '15, 12:19

Frage wurde angeschaut: 3,706 Mal

Zuletzt aktualisiert: 21 Jun, 11:40