Tikz - 对标签名称执行数学运算

Tikz - 对标签名称执行数学运算

我想在 Ti 中使用变量作为标签Z。

假设我们想得到 3 分X1X2X3(我正在寻找一个通用解决方案n点,但为了简单起见,3 就足够了)在同一行上。

此外,我们想在X1 --X2和 1 之间X2——X3 .

 \begin{tikzpicture}
            \foreach \x in {0,...,3}
            \node[draw] at (\x, 1)   ({\x}) {Label \x};

            \foreach \x in {0,...,2}
                \draw[] (\x) -- ({\x+1});
                                  ^^^^^^
 \end{tikzpicture}

我应该写什么来代替\x + 1

我尝试使用{}-括号和\pgfmathparse{\x + 1}\edef\storeresult{\pgfmathresult}

答案1

另外两个解决方案。(chains仅第二个解决方案需要。)

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{chains}
\begin{document}
\begin{tikzpicture}
  \foreach \x in {0,...,3}
  \node[draw] (\x) at(3*\x,1){Label \x};
  \draw[] (0) foreach \x [evaluate=\x as \y using {int(\x-1)}] in
  {1,...,3}{(\x) -- (\y)};
\end{tikzpicture}

\begin{tikzpicture}[start chain]
  \foreach \x in {0,...,3}
  \node[draw,on chain,join] (\x) {Label \x};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

其中一种解决方案是:

\documentclass[]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
            \foreach \x in {0,...,3}
            \coordinate(\x) at (3*\x,1);

            \draw[] (0) foreach \x in{1,...,3}{-- (\x)};

            \foreach \x in {0,...,3}
            \node[draw, fill=white] at(\x){Label \x};

 \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容