TikZ 坐标数组

TikZ 坐标数组

如何在 TikZ 中定义坐标数组?考虑以下内容:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
  \begin{tikzpicture}
    \newcommand{\vertA}{{(0,0),(1,0),(2,0)}}
    \foreach \i in {0,1,2} {
      \coordinate (V\i) at ($\vertA[\i]$);
    }
  \end{tikzpicture}
\end{document}

编译时pdflatex出现错误:

Runaway argument?
\vertA [\i ]$); \pgffor@endhook \ifx \pgffor@assign@after@code \pgfutil@empty \
ETC.
! File ended while scanning use of \tikz@cc@parse@factor.

答案1

我会以不同的方式来处理这个问题:不是循环索引然后访问数组的成员\vertA,而是直接循环坐标数组并使用count=<macro name>函数\foreach

我无法让\coordinate (<name>) at (<coordinate>)命令接受宏作为其坐标,因此我采用了\coordinate [at=<coordinate macro>]方法:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
  \begin{tikzpicture}
    \newcommand{\vertA}{(0,0),(1,0),(2,3)}
    \foreach \coord [count=\i] in \vertA {
      \coordinate [at=\coord, name=A\i];
    }
    \draw (A1) -- (A2) -- (A3);
  \end{tikzpicture}
\end{document}

相关内容