绘制带有多行文本节点的圆形箭头图

绘制带有多行文本节点的圆形箭头图

使用 TikZ 创建这种圆形图的最佳方法是什么?

我在网上找到了几个类似的例子并尝试进行修改,但最终总是出现以下问题:

  • 无法在文本节点中使用格式或添加换行符
  • 文本节点周围没有边框
  • 顺时针箭头不是圆形的

圆形图稿

尝试了一些例子,但无济于事:

答案1

你可能希望自动执行此操作,因此调整Sigur 在评论中提供的此链接,你可以这样做:

带箭头的圆形图

\documentclass[tikz, border=3.14pt]{standalone}
\usetikzlibrary{arrows.meta, bending}

\begin{document}

    \tikzset{mynode/.style={text width=2.5cm, align=center}}
    
    \newcommand{\R}{4cm} % Circle radius
    \newcommand{\texta}{\textbf{Title 1} \\ Description 1}
    \newcommand{\textb}{\textbf{Title 2} \\ Description 2}
    \newcommand{\textc}{\textbf{Title 3} \\ Description 3}
    \newcommand{\textd}{\textbf{Title 4} \\ Description 4}
    \newcommand{\texte}{\textbf{Title 5} \\ Description 5}

    \begin{tikzpicture}[-{Stealth[bend]}]
        \foreach \a/\t in {90/\texta,18/\textb,-54/\textc,-126/\textd,-198/\texte}
        {
            \ifnum\a=90
                \node[mynode,yshift=-10pt] at (\a:\R) {{\t}};
            \else
                \node[mynode] at (\a:\R) {{\t}};
            \fi
            \draw (\a-15:\R)  arc (\a-15:\a-55:\R);
        } 
    \end{tikzpicture}

\end{document}

但你可能会发现位置有点奇怪。所以你需要手动操作。
放置节点(可以使用循环完成)然后通过尝试和错误绘制箭头。

手动版本

    \begin{tikzpicture}[-{Stealth[bend]}]
        \foreach \a/\t in {90/\texta,18/\textb,-45/\textc,-135/\textd,-198/\texte}
            \node[mynode] at (\a:\R) {{\t}};
        
            \draw (70:\R) arc (70:30:\R);
            \draw (10:\R) arc (10:-35:\R);
            \draw (-55:\R) arc (-55:-125:\R);
            \draw (-145:\R) arc (-145:-190:\R);
            \draw (150:\R) arc (150:110:\R);            
    \end{tikzpicture}

相关内容