tikz автоматы края перекрываются

tikz автоматы края перекрываются

У меня есть два состояния, расположенных горизонтально, и мне нужно их соединить, то есть A -> B и A <- B. Как мне расположить края таким образом, чтобы они не перекрывались, и моя диаграмма не стала A <-> B, а вместо этого было бы видно, что можно перемещаться друг из друга и размещать входное сообщение выше и ниже?

 (APPEND_COL) edge[???] node[anchor=east,above,xshift=+3.0em]{delete column} (DELETE_COL)
 (DELETE_COL) edge[???] node[anchor=east,above,xshift=+3.0em]{append column} (APPEND_COL)

Я пробовал устанавливать ??? на значение выше, ниже, изгиб влево=20, изгиб вправо=20, но ни один из этих вариантов не обеспечивает желаемого поведения...

ОБНОВЛЕНИЕ: хорошо, вот полный код, и еще один момент: как сделать так, чтобы циклы слева и справа были не такими огромными?

\begin{tikzpicture}[->,>=stealth']

 % State: FULL_QR
 \node[initial above,state,anchor=north] (FULL_QR)
 {\begin{tabular}{l}
  Recompute QR \\
 \end{tabular}};

 % State: Append column update
 \node[state,           % layout (defined above)
  below left of=FULL_QR,% Position is to the right of FULL_QR
  node distance=5.0cm,  % distance to FULL_QR
  anchor=south] (APPEND_COL) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}     % content
  Append column \\
  \ \ QR update
 \end{tabular}
 };

 % State: Delete column update
 \node[state,            % layout (defined above)
  below right of=FULL_QR,% Position is to the right of FULL_QR
  node distance=5.0cm,   % distance to FULL_QR
  anchor=south] (DELETE_COL) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}      % content
  Delete column \\
  \ \ QR update
 \end{tabular}
 };

 % State: Append column update
 \node[state,                % layout (defined above)
  below right of=APPEND_COL, % Position is to the bottom of APPEND_COL
  node distance=5.0cm,       % distance to APPEND_COL
  anchor=south] (APPEND_ROW) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}          % content
  Append row \\
  \ \ QR update
 \end{tabular}
 };

 % draw the paths and and print some Text below/above the graph
 \path (FULL_QR) edge[bend right=20] node[anchor=west,above,xshift=-3.0em]{append column} (APPEND_COL)
       (FULL_QR) edge[bend left=20] node[anchor=east,above,xshift=+3.0em]{delete
 column} (DELETE_COL)
       (APPEND_COL) edge[bend right=20]
 node[anchor=west,below,xshift=-3.0em]{append row} (APPEND_ROW)
       (DELETE_COL) edge[bend left=20]
 node[anchor=east,below,xshift=+3.0em]{append row} (APPEND_ROW)
       (APPEND_COL) edge[above]
       node[anchor=west,above,xshift=+0.0em]{delete column} (DELETE_COL)
       (DELETE_COL) edge[below]
       node[anchor=east,below,xshift=+0.0em]{append column} (APPEND_COL)
       (APPEND_COL) edge[loop left] node[anchor=west,above,yshift=+1.5em,xshift=+2.0em]{append column}
       (APPEND_COL) (DELETE_COL) edge[loop right] node[anchor=east,above,yshift=+1.5em,xshift=-2.0em]{delete column}
       (DELETE_COL);

\end{tikzpicture}

введите описание изображения здесь

решение1

Поскольку соединительные линии имеют противоположные направления, вам придется использовать bend left=<value>для обеих линий, а не bend leftдля одной и bend rightдля другой:

    \documentclass{article}

    \usepackage{pgf}
    \usepackage{tikz}
    \usetikzlibrary{arrows,automata}
    \usepackage[latin1]{inputenc}
    \begin{document}
\begin{tikzpicture}[->,>=stealth']

 % State: FULL_QR
 \node[initial above,state,anchor=north] (FULL_QR)
 {\begin{tabular}{l}
  Recompute QR \\
 \end{tabular}};

 % State: Append column update
 \node[state,           % layout (defined above)
  below left of=FULL_QR,% Position is to the right of FULL_QR
  node distance=5.0cm,  % distance to FULL_QR
  anchor=south] (APPEND_COL) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}     % content
  Append column \\
  \ \ QR update
 \end{tabular}
 };

 % State: Delete column update
 \node[state,            % layout (defined above)
  below right of=FULL_QR,% Position is to the right of FULL_QR
  node distance=5.0cm,   % distance to FULL_QR
  anchor=south] (DELETE_COL) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}      % content
  Delete column \\
  \ \ QR update
 \end{tabular}
 };

 % State: Append column update
 \node[state,                % layout (defined above)
  below right of=APPEND_COL, % Position is to the bottom of APPEND_COL
  node distance=5.0cm,       % distance to APPEND_COL
  anchor=south] (APPEND_ROW) % posistion relative to the center of the 'box'
 {%
 \begin{tabular}{l}          % content
  Append row \\
  \ \ QR update
 \end{tabular}
 };

 % draw the paths and and print some Text below/above the graph
 \path (FULL_QR) edge[bend right=20] node[anchor=west,above,xshift=-3.0em]{append column} (APPEND_COL)
       (FULL_QR) edge[bend left=20] node[anchor=east,above,xshift=+3.0em]{delete
 column} (DELETE_COL)
       (APPEND_COL) edge[bend right=20]
 node[anchor=west,below,xshift=-3.0em]{append row} (APPEND_ROW)
       (DELETE_COL) edge[bend left=20]
 node[anchor=east,below,xshift=+3.0em]{append row} (APPEND_ROW)
       (APPEND_COL) edge[above, bend left=5]
       node[anchor=west,above,xshift=+0.0em]{delete column} (DELETE_COL)
       (DELETE_COL) edge[below, bend left=5]
       node[anchor=east,below,xshift=+0.0em]{append column} (APPEND_COL)
       (APPEND_COL) edge[loop left] node[anchor=west,above,yshift=+1.5em,xshift=+2.0em]{append column}
       (APPEND_COL) (DELETE_COL) edge[loop right] node[anchor=east,above,yshift=+1.5em,xshift=-2.0em]{delete column}
       (DELETE_COL);

\end{tikzpicture}


    \end{document} 

Связанный контент