tikz-用节点改变圆形路径

tikz-用节点改变圆形路径

我正在尝试生成带有节点的圆形路径:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
\node (1) at (8,6) {A11};
\node (2) [below left of = 1] {B22};
\node (3) [below right of = 2] {C33};
\node (4) [below right of = 1] {D44};
% connect the dots
\path[->,>=stealth]
(1) edge [bend right] node[left] {} (2)
(2) edge [bend right] node[left] {} (3)
(3) edge [bend right] node[right] {} (4)
(4) edge [bend right] node[right] {} (1);
\end{tikzpicture}
\end{document}

图像

但是,这里似乎有些不对劲,我认为箭头不够长。我认为这很可能是因为节点太大,无法容纳箭头的圆形路径,但我希望有人能解决这个问题?请注意,这包含在更大的图表中,因此其大小必须保持相对较小。此外,我意识到我可以减小整个字体大小,这似乎会产生更好的结果

\tikzstyle{every node}=[font=\tiny]

答案1

以下近似值已经足够好了。我还添加了一个真正的圆(粉红色)以供比较:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}[every node/.style={inner sep=1pt}]
  \node (1) at (8,6) {A11};
  \node (2) [below left of = 1] {B22};
  \node (3) [below right of = 2] {C33};
  \node (4) [below right of = 1] {D44};
  % True circle
  \draw[red, opacity=.3] ($(1)!.5!(3)$) circle (6.5mm);
  % connect the dots
  \path[->,>=stealth]
  (1) edge [bend right=20]  (2)
  (2) edge [bend right=20]  (3)
  (3) edge [bend right=20]  (4)
  (4) edge [bend right=20]  (1);
\end{tikzpicture}
\end{document}

结果:

结果

答案2

作为替代方案,特别是如果你不需要“调整”图表,你可能会想尝试 Claudio Fiandrino 的smartdiagram包(可在 TeX Live 中使用)。

这是一个非常简单的例子,完全不需要调整,但我认为,对于 LaTeX 答案来说,它出奇的紧凑:

\documentclass[10pt]{article}
\usepackage{smartdiagram}
\begin{document}
\smartdiagram[circular diagram]{A11,B22,C33,D44}
\end{document}

当然,您可以改变颜色、形状等——详细信息请参阅手册。

在此处输入图片描述

相关内容