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

BSplitter 05/09/2018. 2 answers, 162 views
tikz-pgf foreach coordinates

我试图在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} 

2 Answers


caverac 05/09/2018.

你可以使用(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} 

在这里输入图像描述


percusse 05/09/2018.

你可以通过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} 

Related questions

Hot questions

Language

Popular Tags