![如何使用 Tikz 计算并使用文本的连续颜色值?](https://linux22.com/image/386378/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Tikz%20%E8%AE%A1%E7%AE%97%E5%B9%B6%E4%BD%BF%E7%94%A8%E6%96%87%E6%9C%AC%E7%9A%84%E8%BF%9E%E7%BB%AD%E9%A2%9C%E8%89%B2%E5%80%BC%EF%BC%9F.png)
我想使用 Tikz 算法生成一些具有基于计算的颜色值的文本。例如:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {0, 1, ..., 10} {
\draw (\i, 0) node {\textcolor[gray]{0.5}A};
}
\end{tikzpicture}
\end{document}
以灰色显示一行“A”:
我该如何计算0.5
值,例如,以不同灰度显示这组“A”,例如从黑色到白色的渐变?我可以使用相同的方法计算任意 RGB 值吗?
答案1
答案2
答案3
您可以在 foreach 循环本身内评估变量(参见 3.0.1a 手册第 904 页)。
在这里,由于您想从黑色变为白色,您可以执行以下操作:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i [evaluate=\i as \gradient using 100-\i*10] in {0, 1, ..., 10} {
\draw (\i, 0) node[text=black!\gradient] {A};
}
\end{tikzpicture}
\end{document}
答案4
与 marmot 提出的语法略有不同,但效果相同
\documentclass[tikz,border=3.14pt]{standalone}
\begin{document}
\begin{tikzpicture}
\draw foreach \i [evaluate=\i as \j using {int(\i*10)}] in {0, 1, ..., 10} {
(\i, 0) node[text=gray!\j!white] {A}
};
\end{tikzpicture}
\end{document}