TikZ 中使用数组和节点时出错

TikZ 中使用数组和节点时出错

我是 TikZ 的新手,我正在尝试制作一个包含 12 个节点的环形图。

我的以下代码不起作用:

\begin{tikzpicture}

\def \n {12}
\def \radius {3cm}
\def \margin {8} % margin in angles, depends on the radius

\foreach \s in {1,...,\n}
{
  \node[draw, circle] (teste[\s]) at ({360/\n * (\s - 1)}:\radius) {};
}

\foreach \s in {1,...,9}
{
  \pgfmathparse{\s+1}
  \draw (teste[\s]) -- (teste[\pgfmathresult]);
}

\end{tikzpicture}

我这里有一个例子:http://www.texample.net/tikz/examples/cycle/我改变了一些事情。

显示的错误是:

! Package pgf Error: No shape named teste[2 is known.See the pgf package
documentation for explanation.Type H <return> for immediate help.... }

! Package pgf Error: No shape named teste[3 is known.See the pgf package
documentation for explanation.Type H <return> for immediate help.... }

... and so on ...

! Package pgf Error: No shape named teste[10 is known.See the pgf package
documentation for explanation.Type H <return> for immediate help.... }

我的代码有什么问题?如何才能使这个数组像其他编程语言一样工作?

谢谢。

答案1

您不需要将其转换realsintegers,而是可以通过选项使用已定义的类似intcount

您还可以使用循环连接remember选项。

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\def \n {12}
\def \radius {3cm}
\def \margin {8} % margin in angles, depends on the radius

\foreach \s [count=\ns] in {1,...,\n}
  \node[draw, circle] (teste-\ns) at ({360/\n * (\s - 1)}:\radius) {};

\foreach \s [remember=\s as \next (initially \n)] in {1,...,12}
  \draw (teste-\next) -- (teste-\s);

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容