如何在边上绘制节点?

如何在边上绘制节点?

当我绘制图形时,边缘与某些节点重叠。如何使节点位于边缘之上,而不是边缘位于节点之上?我尝试使用 backgrounds 包,但似乎不起作用。这是我的代码供参考。

\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary[topaths]
\begin{document}
\begin{tikzpicture}[transform shape]
  \foreach \x in {1,...,16}{%
    \pgfmathparse{(\x-1)*360/16}
    \node[draw,circle,inner sep=0.05cm,minimum width = 13pt,font=\scriptsize] (N-\x) at (\pgfmathresult:1.4cm) {$\x$};
  } 
  \foreach \x [count=\xi from 1] in {1,...,15}{%
    \foreach \y in {\x,...,16}{%
    \begin{scope}[on background layer]
      \path (N-\x) edge[ultra thin,-] (N-\y);
    \end{scope}
  }
}
\end{tikzpicture}
\end{document}

答案1

在您的示例中,节点已位于前景中,而边缘位于背景(层)中。但节点本身具有透明背景。因此,您可以看到节点后面的边缘背景。您只需将节点填充为白色即可使背景边缘不可见:

\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary[topaths]
\begin{document}
\begin{tikzpicture}[transform shape]
  \foreach \x in {1,...,16}{%
    \pgfmathparse{(\x-1)*360/16}
    \node[draw,circle,fill=white,inner sep=0.05cm,minimum width = 13pt,font=\scriptsize] (N-\x) at (\pgfmathresult:1.4cm) {$\x$};
  } 
  \foreach \x [count=\xi from 1] in {1,...,15}{%
    \foreach \y in {\x,...,16}{%
    \begin{scope}[on background layer]
      \path (N-\x) edge[ultra thin,-] (N-\y);
    \end{scope}
  }
}
\end{tikzpicture}
\end{document}

要得到

边缘上方的节点

相关内容