我正在尝试创建一个网格的“3D”模式,其中每个“像素”都用随机的蓝色(或任何其他颜色)着色。作为 tikz 初学者,我已经很高兴我设法倾斜网格,但到目前为止,我只设法更改了整个网格的颜色。这是我的 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
\begin{tikzpicture}[every node/.style={minimum size=1cm}]
\begin{scope}[
every node/.append style={
yslant=0.5, xslant=-1}, yslant=0.5, xslant=-1
]
\fill[blue, fill opacity=.6] (0,0) rectangle (5.5, 5.5);
\draw[gray, very thick] (0,0) rectangle (5.5, 5.5);
\draw[step=5mm, gray] (0,0) grid (5.5, 5.5);
\end{scope}
\end{tikzpicture}
\end{document}
从我在其他帖子中看到的内容来看,我担心我需要单独绘制每个像素?
答案1
您可以使用两个嵌套的\foreach
句子来表示行和列,并在循环内部为网格中的每个元素计算一个随机数。
我改变了你的 3d 视图方法,使用3d
和perspective
Ti钾Z 库,但该\foreach
方法对于您的示例也有效。
例如,
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{3d,perspective}
\begin{document}
\begin{tikzpicture}[isometric view, canvas is xy plane at z=0]
\foreach\i in {0,0.5,...,5} \foreach\j in {0,0.5,...,5}
\pgfmathparse{100*rnd}
\fill[blue!\pgfmathresult,draw=gray] (\i,\j) rectangle (\i+0.5,\j+0.5);
\draw[gray, very thick] (0,0,0) rectangle (5.5, 5.5,0);
\end{tikzpicture}
\end{document}