# Using double for-loop in tikz

In the manual one can find the ... option to obtain a range in the for-loop. For example:

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


On the other hand, one can have a for-loop which runs over two variables simultaneously. For example:

\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);
}
}


which can produce some simple "animation" when used along with beamer. My question is how to combine the two. Namely, I would like to have something like:

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


which will produce the list (1,0),(2,0.25),(3,0.5),(4,0.75),(5,1). Is there a way to do it?

-
I think it's no (see the pgfmanual). It's only possible with for example : \foreach \x in {0\pi,0.5\pi,...\pi,3\pi} {$\x$, } the ... statement have exactly the same pattern, except that, instead of dots, they have a number or a character. So you need to avoid ... in your case but perhaps I'm wrong and a great expert can find a solution. –  Alain Matthes Jun 25 '11 at 9:42

I don't think that this is possible. However, in your case the / notations isn't really necessary:

\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}


For more complicated cases, when one variable is dependent on the other via some formula, you can also use

\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}

-
Your first snippet solved my problem! Can you give a reference to these two solutions? So I can understand them better? Thnx anyway! –  Dror Jun 25 '11 at 10:29
@Dror: pages 507 and 508 of the TikZ v2.10 manual (“Options to customize the foreach-statement”). –  Caramdir Jun 25 '11 at 10:31
–  Caramdir Jun 25 '11 at 10:31
Thnx!! I stopped on page 505... –  Dror Jun 25 '11 at 13:37