在 TikZ 中操作变量

在 TikZ 中操作变量

要在 TikZ 中的坐标 (1,0), (2,0), ..., (8,0) 处创建名称为 P1, P2, ..., P8 的点,我可以使用

\begin{tikzpicture}[scale=1]

  \foreach \i in {1,...,8}
  {
    \path (\i,0) coordinate (P\i);
    \fill (P\i) circle (2pt);
  }

\end{tikzpicture}

现在,如果我想创建相同的八个点,但将它们命名为 P2、P3、...、P9,该怎么办?

我尝试将其改为

\path (\i,0) coordinate (P(\i+1));

但它不起作用。

答案1

这会起作用。使用一个附加变量 \t,通过公式将其与 \i 关联,如下所示。这里添加了一个节点来打印标签,以便进行视觉表达。

[evaluate=\i as \t using int(\i+1)] 

更多:由 percusse 提议,通过

[count=\t from 2]

意思是从 2,3,4 开始数……

在此处输入图片描述

代码

\documentclass[a4paper,10pt]{article}
\usepackage{tikz}

\begin{document}

Before:
\bigskip

\begin{tikzpicture}[scale=1]

  \foreach \i in {1,...,8}
  {
    \path (\i,0) coordinate (P\i) node[above]{P\i};
    \fill (P\i) circle (2pt);
  }

\end{tikzpicture}

\bigskip
After:
\bigskip

\begin{tikzpicture}[scale=1]

  \foreach \i[evaluate=\i as \t using int(\i+1)] in {1,...,8}
  {
    \draw (\i,0) coordinate (P\t) node[above]{P\t};
    \fill (P\t) circle (2pt);
  }

\end{tikzpicture}

\bigskip
More: proposed by percusse. 
\bigskip    

\begin{tikzpicture}[scale=1]

  \foreach \i[count=\t from 2] in {1,...,8}
  {
    \draw (\i,0) coordinate (P\t) node[above]{P\t};
    \fill (P\t) circle (2pt);
  }

\end{tikzpicture}


\end{document}

相关内容