tikzpicture 中嵌套 foreach 中的 if 语句不起作用 - 语法错误?

tikzpicture 中嵌套 foreach 中的 if 语句不起作用 - 语法错误?

我尝试使用嵌套的 \foreach 命令将点放置在某些网格位置上,如下所示,但 TeXstudio 拒绝使用第二个变量 \y,并出现错误“无法识别的命令”。

奇怪的是 \y价值在 \filldraw 命令中已识别:点被放置在全部网格点。但显然我使用的 if 语法不正确;结果不取决于 TeXstudio 中的“无法识别的命令”标志。如何解决这个问题?

\documentclass [a4paper,12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=5.0,cap=round,>=latex]
\draw[step=0.1cm,lightgray,very thin]  (0.0,0.0) grid (3.0,2.0);
\draw[thin] (0.0cm,0.0cm) -- (3.1cm,0.0cm) node[right,fill=white] {$x$};
\draw[thin] (0.0cm,0.0cm) -- (0.0cm,2.1cm) node[above,fill=white] {$y$};
\foreach \x in {0.1,0.2,...,2.8}{
    \foreach \y in {0.1,0.2,...,1.8}
    {
        if \x < \y {\filldraw[black] (\x cm, \y cm) circle(0.2pt);}
    }
}
\end{tikzpicture}       
\end{document}

在此处输入图片描述

编辑

我注意到报告的问题根本不是问题;代码确实完成了它的工作,但是结果不是我希望达到的,所以我在这里用另一个标题和标签重新发布了我的问题。

从另一篇文章来看,需要使用更复杂的方法:以下方法可以正常工作:

        \pgfmathsetmacro\q {\y}
        \ifdim \q pt< \x pt
            \filldraw[black] (\x cm, \y cm) circle(0.2pt);
        \else {}
        \fi

我不明白为什么需要这么复杂。有没有更简单的解决方案?

相关内容