Tikz - 用颜色阴影随机填充 3D 网格

Tikz - 用颜色阴影随机填充 3D 网格

我正在尝试创建一个网格的“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 视图方法,使用3dperspectiveTiZ 库,但该\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}

在此处输入图片描述

相关内容