如何对 for 循环中的变量进行算术运算?

如何对 for 循环中的变量进行算术运算?

如何在节点的大括号内使用算术?我有这个,它会在圆圈中打印例如“0+1”。我希望有圆圈显示其坐标的总和。

\begin{tikzpicture}

\foreach \x in {0,1,2,3}
\foreach \y in {0,1,2,3}
\draw [] (\x,\y) circle [radius=0.4] node {\x + \y};

\end{tikzpicture}

答案1

在这个仅涉及整数的简单情况下,您可以使用进行算术运算\numexpr

\documentclass[tikz]{standalone}
\usepackage{pgffor}

\begin{document}

\begin{tikzpicture}

\foreach \x in {0,1,2,3}
\foreach \y in {0,1,2,3}
\draw [] (\x,\y) circle [radius=0.4] node {\the\numexpr\x + \y\relax};

\end{tikzpicture}
\end{document}

这使

在此处输入图片描述

但一定存在某种 TikZ 方法。

注意:\numexpr自 2004 年以来,默认在 TeXLive 发行版的 pdflatex 中提供。但我认为用户级文档并不多。

答案2

试试这个代码:

\documentclass[tikz,border=5pt]{standalone}

\begin{document}
    
    \begin{tikzpicture}
        
        \foreach \x in {0,1,...,5}
        \foreach \y in {0,1,2,3}{%
        \pgfmathsetmacro\z{int(\x+\y)}
        \draw (\x,\y) circle [radius=0.4] node {\z};
    }
    \end{tikzpicture}
\end{document}

输出为:

在此处输入图片描述

如果你更改此行:

\pgfmathsetmacro\z{int(\x+\y)}

在这一行中:

\pgfmathsetmacro\z{\x+\y}

输出为:

在此处输入图片描述

(注意:忘记边界线!)

相关内容