Schleife mit Raute (TikZ)

Schleife mit Raute (TikZ)

Wie lässt sich die Schleife von der Westecke des Diamanten zur Ostecke des Diamanten so gestalten, dass sie der Abbildung entspricht?

Figur

Bildbeschreibung hier eingeben

Code

       \documentclass[border=5mm]{standalone}
       \usepackage{tikz}
       \usetikzlibrary{shapes.geometric}
       \usepackage{amssymb}
       \begin{document}

        \begin{tikzpicture}[->, >=stealth, auto, semithick,
                 node distance=3cm,shorten >=2pt,shorten <=2pt,
                 mynode/.style={fill=white,draw,
                 diamond,thick,inner sep=5pt}]
        \node[mynode] (A) {$1$};
        \node[mynode] (B)[right of=A]  {$2$};
        \node[mynode] (C)[right of=B]  {$3$};
        \node[mynode] (D)[right of=C]  {$4$};

        \path[black](A.east) edge[bend left] node{S} (B.west)
                    (B.west) edge[bend left] node{U} (A.east)
                    (B.east) edge node{E} (C.west) 
                    (C.east) edge node{S} (D.west)
                    (B) edge[loop above] node{P} (B)
                    (B) edge[loop below] node{C} (B)
                    (C) edge[loop above] node{N} (C);
       \end{tikzpicture}
       \end{document}

Ausgabe

Bildbeschreibung hier eingeben

Antwort1

Hier ist eine Methode, die drei separate \draws verwendet.

Ausgabe

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage{amssymb}
\begin{document}

\begin{tikzpicture}[->, >=stealth, auto, semithick,
          node distance=3cm,shorten >=2pt,shorten <=2pt,
          mynode/.style={fill=white,draw,
          diamond,thick,inner sep=5pt}]
 \node[mynode] (A) {$1$};
 \node[mynode] (B)[right of=A]  {$2$};
 \node[mynode] (C)[right of=B]  {$3$};
 \node[mynode] (D)[right of=C]  {$4$};

 \path[black](A.east) edge[bend left] node{S} (B.west)
             (B.west) edge[bend left] node{U} (A.east)
             (B.east) edge node{E} (C.west) 
             (C.east) edge node{S} (D.west);
 \draw       (B.west) to[out=110,in=70,looseness=3] node{P} (B.east);
 \draw       (B.west) to[out=-110,in=-70,looseness=3] node[swap]{C} (B.east);
 \draw       (C.west) to[out=110,in=70,looseness=3] node{N} (C.east);
\end{tikzpicture}
\end{document}

Antwort2

Eine Alternative mit der Verwendung der Bibliotheken arrows.meta, bendingund quotesund arcanstelle von loop:

\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{arrows.meta, bending, quotes, shapes.geometric}

\begin{document}
    \begin{tikzpicture}[-{Stealth[bend]}, auto, semithick,
     node distance=3cm,
     shorten >=2pt, shorten <=2pt,
     mynode/.style={diamond,draw, thick, minimum size=8mm, inner sep=0pt}
                       ]
\node[mynode] (A) {$1$};
\node[mynode] (B)[right of=A]  {$2$};
\node[mynode] (C)[right of=B]  {$3$};
\node[mynode] (D)[right of=C]  {$4$};

\path[black](A.east) edge[bend left, "S"]   (B.west)
            (B.west) edge[bend left, "U"]   (A.east)
            (B.east) edge["E"]              (C.west)
            (C.east) edge["S"]              (D.west);
\draw       ([yshift= 2pt] B.west) arc (235:-55:0.7) node[midway,below] {P};
\draw       ([yshift=-2pt] B.west) arc (-235:55:0.7) node[midway,above] {C};
\draw       (C.west) arc (235:-55:0.7) node[midway,below] {N};
    \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Bei der Bestimmung des arcRadius end anglewurden folgende Beziehungen berücksichtigt:

Bildbeschreibung hier eingeben

arcwobei Pund Centsprechend um 2pt vertikal verschoben sind, sodass sie sich nicht mit Biegelinien zwischen Knoten 1 und 2 überschneiden.

verwandte Informationen