如何在 TikZ 中迭代定义坐标?

如何在 TikZ 中迭代定义坐标?

我正在尝试迭代定义一个坐标系TikZ。本质上,我想使用\foreach命令复制以下内容:

\begin{tikzpicture}
\coordinate (A1) at (0,0);
\coordinate (A2) at (0,1);
\coordinate (A3) at (0,2);
\coordinate (B1) at (1,0);
\coordinate (B2) at (1,1);
\coordinate (B3) at (1,2);
\end{tikzpicture}

有什么方法可以创建类似以下的内容吗?

\begin{tikzpicture}
\foreach \i in {0,1,2}
    {
         [define A coordinates];
         [define B coordinates];
    }
\end{tikzpicture}

答案1

您可以使用(A\i)

\documentclass[]{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \foreach \i in {0,1,2} {
    \coordinate(A\i) at (0, \i);
    \coordinate(B\i) at (1, \i);
  }

  \foreach \i in {0,1,2} {
    \fill[red] (A\i) circle (0.2);
    \fill[blue] (B\i) circle (0.2);
    \draw[orange] (A\i) -- (B\i);
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以通过密钥减少一些代码count,但只有当您有大量代码时才值得这样做。在我看来,您拥有的代码在可读性方面基本上更好。

\begin{tikzpicture}
\foreach\x[count=\xi from 0] in {A,B}{
  \foreach\y[count=\yi] in{0,1,2}{
    \coordinate (\x\yi) at (\xi,\y);
  }
}
\end{tikzpicture}

相关内容