如何在 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}