我正在尝试绘制一个节点网格,其中每个节点都有不同的颜色:
我学习了如何从解决方案中绘制节点网格来:TikZ:使用循环绘制节点网格
这给出了下面的网格。我现在如何让每个节点都具有特定的颜色?
非常感谢你的帮助!
答案1
这是一个适用于任意整数的提议。颜色是唯一的,由设置\definecolor{mycol}{RGB}{\myr,100,\myb}
。如果您想要不同的颜色,则需要调整这段代码。
\documentclass[tikz,border=3mm]{standalone}
\tikzset{pics/colored grid/.style={code={
\pgfmathtruncatemacro{\mymod}{0.5+sqrt(#1)}
\pgfmathtruncatemacro{\mymmod}{\mymod+ifthenelse(#1>\mymod*\mymod,1,0)}
\draw (0,0) grid (\mymod-1,1-\mymmod);
\foreach \XX in {1,...,#1}
{\pgfmathtruncatemacro{\myr}{mod(\XX-1,\mymod)*255/(\mymod-1)}
\pgfmathtruncatemacro{\myb}{int((\XX-1)/\mymod)*255/(\mymmod-1)}
\definecolor{mycol}{RGB}{\myr,100,\myb}
\path ({mod(\XX-1,\mymod)},{-int((\XX-1)/\mymod)})
node[circle,draw,text width={width("11")},align=center,
fill=mycol]{\XX};}
}}}
\begin{document}
\begin{tikzpicture}
\path (0,0) pic{colored grid=24} (6,0) pic{colored grid=25}
(0,-6) pic{colored grid=33};
\end{tikzpicture}
\end{document}