Seite 1 von 1

[tikz] circle zwischen zwei nodes zeichnen

Verfasst: Di 4. Jun 2013, 20:17
von MoonKid
Ich möchte zwei Nodes mit einem Pfeil verbinden. Dieser Pfeil bekommt in der Mitte eine Beschriftung. Wie das geht, weiß ich.

Ich möchte diese Beschriftung aber in einem Kreis einschließen. Also im Grunde möchte ich zwischen die zwei Nodes (also als Pfeilbeschriftung) nicht nur Text, sondern auch (möglichst jede beliebige) Grafik setzen können.

Da steig ich aber noch nicht dahinter, wie das geht.
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

% Sprache
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{tikz}
\tikzset{
    table/.style={remember picture,baseline,every node/.style={anchor=base,inner sep=0pt}}
}

\begin{document}
    % Tabelle mit zwei TikZ-Knoten
    \begin{tabular} {c | c}
        \tikz[table] \node (nA) {a};&
        \tikz[table] \node (nB) {b};
    \end{tabular}

    % Knoten mit Pfeil verbinden
    \begin{tikzpicture}[remember picture,overlay]
        \draw[->] (nA.center) -- node [sloped,midway,above] {X} (nB.center);
    \end{tikzpicture}

\end{document}

Verfasst: Di 4. Jun 2013, 20:22
von MoonKid
Ah, wärend man die Frage abläst, kommen einem neue Ideen. ;)

Man zeichnet an der Stelle (im Code) gar nicht, sondern setzt und benennt einfach nur dieses Node.
\draw[->] (nA.center) -- node [sloped,midway,above] (nPfeilbeschriftung) {X} (nB.center); 
Und an späterer Stelle (direkt danach) zeichne ich da einfach was hin.
/draw (nPfeilbeschriftung.center) circle (5pt);

Verfasst: Di 4. Jun 2013, 21:26
von esdd
Warum verwendest du nicht gleich eine gezeichnete Kreisnode?
\draw[->](nA.center)--node[sloped,above=0.3mm,draw,circle,inner sep=0.2mm]{X}(nB.center); 
Gruß
Elke

Verfasst: Di 4. Jun 2013, 23:37
von iTob
Mit der calc Bibliothek kannst du auch die mittlere Koordinate berechnen:
\draw ($(NodeA)!0.5!(NodeB)$) circle (5pt);
Da geht noch ne ganze menge mehr … schau ggf. in die Doku ;-)

Verfasst: Mi 5. Jun 2013, 09:47
von MoonKid
esdd hat geschrieben:Warum verwendest du nicht gleich eine gezeichnete Kreisnode?
\draw[->](nA.center)--node[sloped,above=0.3mm,draw,circle,inner sep=0.2mm]{X}(nB.center); 
Ah, dass das so geht, wusste ich nicht. So eine Konstruktion habe ich in der tikz-Doc bisher noch nicht gesehen.

Aber wie modifiziere ich diesen "circle" nun? Ich möchte ihn in einer ausgefüllten Frabe und am besten noch mit Schatten?

In welchem Bereich der tikz-Dok finde ich eine nüchterene Auflistung darüber, welche Parameter in den eckigen Klammern von "node" möglich sind?

Verfasst: Mi 5. Jun 2013, 10:29
von esdd
Dann lies dir einfach mal den Abschnitt Nodes and Edges durch. Dort sind auch die wichtigsten Optionen erläutert. Eine Aufzählung aller Möglichkeiten für den Inhalt der eckigen Klammern gibt es aber nicht, da dies auch von den geladenen tikzlibraries abhängt und man über tikzset selbst welche hinzufügen kann.

Das Füllen geht mit der Option fill=...

Um einen Schatten zu erzeugen, musst du in der Präambel noch \usetikzlibrary{shadows} einfügen und kannst dann Optionen wie copy shadow oder circular drop shadow für die Noden verwenden. Informationen zu den Einstellmöglichkeiten findest du in der Doku unter Libraries - Shadow Library

Gruß
Elke