在 foreach 中改变颜色

在 foreach 中改变颜色

我正在尝试创建这样的图片: 我有一个网格,我通过颜色变化来描绘方框的移动。我希望我可以使用 foreach 在 Tikz 中轻松实现这种效果(我对 Tikz 非常不熟悉)。它似乎不喜欢我将变量\j\i放入颜色部分 - 特别是当我尝试将其乘以某个值时(例如,如所示代码中所示,10)。

\begin{tikzpicture}[scale=.5]
\foreach \i in {1,2,3,4,5,6,7,8}
{
\foreach \j in {1,2,3,4,5,6,7,8}
{
\definecolor{myblue}{cmyk}{10*j,0,0,0}
\draw[fill= myblue] (\i-1,\j-1)--(\i,\j-1)--(\i,\j)--(\i-1,\j)--(\i-1,\j-1);
}
}
\end{tikzpicture}

在尝试这个解决方案之前我正在使用\draw[fill=blue!10*\j!white] (\i-1,\j-1)--(\i,\j-1)--(\i,\j)--(\i-1,\j)--(\i-1,\j-1);

任何帮助将非常感激。

答案1

请始终发布完整的代码,以便人们不必猜测重现问题或回答问题需要哪些包和类。

下面给出了根据增加着色深度的一种方法\j

\documentclass[tikz,border=5pt]{standalone}
\begin{document}
  \definecolor{myblue}{cmyk}{10,0,0,0}
  \begin{tikzpicture}
    \foreach \i in {1,2,3,4,5,6,7,8}
    {
      \foreach \j in {1,2,3,4,5,6,7,8}
      {
        \pgfmathsetmacro\k{\j*10}
        \draw[fill=myblue!\k] (\i-1,\j-1)--(\i,\j-1)--(\i,\j)--(\i-1,\j)--(\i-1,\j-1);
      }
    }
  \end{tikzpicture}
\end{document}

蓝色增量

您可能想根据\i左图改变色调:

    \pgfmathsetmacro\k{\i*10}

水平递增蓝色

你可以得到一些相当不错的效果:

    \pgfmathsetmacro\k{mod(\i+\j-1,8)*10}

更复杂的增量

相关内容