在 foreach 循环中,我创建点和它们之间的线,使它们相交,并命名它们的交点。此机制由 Intersections 库提供。
因为我在 foreach 循环的本地范围内,所以我需要使用类似的结构
\path[name path global=AB] (A) -- (B);
AB
如果我想稍后从 for 循环外部访问它,则将名称设为全局名称。我的问题是:为了命名交点(在本例中为Z
,其中AB
和CD
相交),通常(在循环外部),我使用如下结构
\path[name intersections={of=AB and CD, by=Z}];
但在 foreach 中,我遇到了同样的问题:名称Z
将是本地的。我无法弄清楚如何全局name intersections
绑定与其by
参数关联的变量。
如果我的问题描述不清楚,我也可以提供相同的代码。
答案1
我没有这个问题:
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\foreach \i [count=\ni] in {1,2,...,5}{
\draw[name path=AB\ni, xshift=2*\i cm] (0,0)--++(45:2cm);
\draw[name path=BA\ni, xshift=2*\i cm] (0,2)--++(-45:2cm);
\path[name intersections={of={AB\ni} and {BA\ni}, by={Z\ni}}];
}
\draw (Z1) circle (2pt) -- (Z5) circle (2pt);
\end{tikzpicture}
\end{document}