如何使用 TikZ 在螺旋上创建等距标记节点和边?

如何使用 TikZ 在螺旋上创建等距标记节点和边?

我使用了下面的代码,得到了图 1。我如何获得图 2?

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [fill=white] circle [radius=4pt] (0,0) \foreach \t in {0.1,0.2,...,1.6}{
++({sqrt(\t)*700}:1.0cm) circle [radius=4pt]
};
\end{tikzpicture}

在此处输入图片描述

答案1

如果您使用节点,您可以命名它们并在其中写入内容。

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}
  \begin{tikzpicture}[my node/.style={circle, inner sep=0pt, fill=red, minimum size=8pt, draw, text=white, font=\tiny}]
  \draw [fill=white] circle [radius=4pt] (0,0) \foreach \t in {0.1,0.2,...,1.6}{ ++({sqrt(\t)*700}:1.0cm) circle [radius=4pt] };
  \begin{scope}[xshift=50mm]
    \draw (0,0) node (n1) [my node] {1}  \foreach \t [count=\c from 2] in {0.1,0.2,...,1.6} { ++({sqrt(\t)*700}:1.0cm) node (n\c) [my node] {\c} };
    \graph [use existing nodes] {
      n1  -> n2 -> n3;
      n4 -> n6;
      n5 -> n15;
      n7 -> n17;
      n8 <- n10;
      n11 -> n13
    };
  \end{scope}
\end{tikzpicture}
\end{document}

指出不同

不过,我建议把它们做得更大一些,因为我必须用它们\tiny来容纳数字,而这根本不容易阅读——尤其是红底白字。

相关内容