使用循环关闭 TikZ 图中的一个循环

使用循环关闭 TikZ 图中的一个循环

考虑以下简单流程图。我喜欢使用 TikZ 中的图形绘制库,因为它简单且语义清晰:

\documentclass{standalone}

\usepackage{tikz}
    \usetikzlibrary{graphdrawing}
    \usegdlibrary{trees}

\begin{document}

    \tikz[>=latex]
        \graph[
            tree layout,
            node pre sep = 0.2em,
            grow=right,
            },
        ]
        {
            A -> B -> C -> D -> E -> (A.south)
        };

\end{document}

此代码连接了一个从E.west到 的箭头A.south,该箭头与其他节点相交。我如何创建一个循环,从E.south或开始E.east,然后向下进入A.south或 ,也许A.west再次进入最后?

答案1

三个选项:

\documentclass[border=6pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}

\begin{document}

\begin{tikzpicture}[>=latex]
\graph[
  tree layout,
  node pre sep = 0.2em,
  grow=right,
  ]
  {
    A -> B -> C -> D -> E ->[bend left] A
  };
\end{tikzpicture}\quad
\begin{tikzpicture}[>=latex]
\graph[
  tree layout,
  node pre sep = 0.2em,
  grow=right,
  ]
  {
    A -> B -> C -> D -> E ->[out=-90,in=-90] A
  };
\end{tikzpicture}\quad
\begin{tikzpicture}[>=latex]
\graph[
  tree layout,
  node pre sep = 0.2em,
  grow=right,
  ]
  {[name=str]
    A -> B -> C -> D -> E 
  };
  \draw[-] (str E.east) to[out=0,in=0] ([yshift=-15pt]str C);
  \draw[<-] (str A.west) to[out=180,in=180] ([yshift=-15pt]str C);
\end{tikzpicture}

\end{document}

在此处输入图片描述

前两个选项使用了可以使用语法->[...]来修改路径的事实;第三个选项使用[name=<string>]图形节点的前缀,然后使用两个适当的\draw命令。

相关内容