循环中的色彩

循环中的色彩

我如何通过循环获得以下内容?

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[fill=green!20!black] (0,0) rectangle (1,1);
\draw[fill=green!40!black] (0,1) rectangle (1,2);
\draw[fill=green!60!black] (0,2) rectangle (1,3);
\draw[fill=green!80!black] (0,3) rectangle (1,4);
\end{tikzpicture}
\end{document}

我以为会是这样

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {1,2,3,4}
\draw[fill=green!{\i*20}!black] (0,{\i-1}) rectangle (1,\i);
\end{tikzpicture}
\end{document}

但这不起作用。我该如何修复它?

答案1

不会!<factor>!通过 PGF 数学解析器发送(与坐标不同),因此您无法在其中放置表达式。幸运的是,您可以使用循环evaluate上的键foreach来实现相同的目的:

\documentclass{standalone}
%\url{https://tex.stackexchange.com/q/700197/86}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach[evaluate=\i as \tint using \i*20] \i in {1,2,3,4}
\draw[fill=green!\tint!black] (0,{\i-1}) rectangle (1,\i);
\end{tikzpicture}
\end{document}

得出的结果为:

不同颜色的矩形

相关内容