在 tikz 中使用双重 for 循环

在 tikz 中使用双重 for 循环

在手册中,可以找到...在 for 循环中获取范围的选项。例如:

\foreach \x in {0,0.1,...,6} {\x, }

另一方面,可以有一个同时对两个变量运行的 for 循环。例如:

\foreach \i / \y in {1/0,2/0.25,3/0.5,4/0.75,5/1} {
     \only<\i>{
     \draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
     \draw (0,0) -- (1,\y);
     }
}

与 beamer 一起使用时可以产生一些简单的“动画”。我的问题是如何将两者结合起来。也就是说,我希望有类似的东西:

\foreach \i / \y in {1/0,2/0.25,...,5/1}

这将产生列表(1,0),(2,0.25),(3,0.5),(4,0.75),(5,1)。有办法吗?

答案1

我认为这是不可能的。但是,对于你的情况,这些/符号并不是必需的:

\begin{tikzpicture}
\foreach \y [count=\i] in {0,0.25,...,1} {
     \only<\i>{
     \draw (0,0) rectangle (1,1);
     \draw (0,0) -- (1,\y);
     }
}
\end{tikzpicture}

对于更复杂的情况,当一个变量通过某个公式依赖于另一个变量时,你也可以使用

\begin{tikzpicture}
\foreach \i [evaluate=\i as \y using (\i-1)*0.25] in {1,2,...,5} {
     \only<\i>{
     \draw (0,0) rectangle (1,1);
     \draw (0,0) -- (1,\y);
     }
}
\end{tikzpicture}

相关内容