Tikz에서 블록을 그리는 순서를 신경 쓰지 않고 쌓인 3D 블록을 서로 성장시키는 방법

Tikz에서 블록을 그리는 순서를 신경 쓰지 않고 쌓인 3D 블록을 서로 성장시키는 방법

인접한 큐브 모양을 그리려고 합니다. 좌표를 순서대로 지정하지 않으면 다음 도형의 선이 아래와 같이 이전 도형과 겹쳐지게 됩니다. 그리기 순서에 대해 걱정하지 않고 이 문제를 어떻게 처리할 수 있습니까?

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}

\tdplotsetmaincoords{50}{60}
\begin{tikzpicture}
        [tdplot_main_coords,
            cube/.style={very thick,black},
            grid/.style={very thin,gray},
            axis/.style={->,blue,thick}]

    %draw a grid in the x-y plane
    \foreach \x in {-1,0,...,4.5}
        \foreach \y in {-1,0,...,4.5}
        {
            \draw[grid] (\x,-1) -- (\x,4.5);
            \draw[grid] (-1,\y) -- (4.5,\y);
        }
            

    %draw the axes
    \draw[axis] (0,0,0) -- (8,0,0) node[anchor=west]{$x$};
    \draw[axis] (0,0,0) -- (0,8,0) node[anchor=west]{$y$};
    \draw[axis] (0,0,0) -- (0,0,8) node[anchor=west]{$z$};

    %draw the edges of the cube
    \foreach \x/\y/\z in {0/0/0,0/1/0,0/2/0}
    {
    \draw [fill=gray!30] (\x,\y,\z)--++(0,0,1)--++(0,1,0)--++(0,0,-1)--cycle;    %x
    \draw [fill=gray!30] (\x,\y,\z)--++(1,0,0)--++(0,1,0)--++(-1,0,0)--cycle;    %z
    \draw [fill=gray!30] (\x,\y,\z)--++(1,0,0)--++(0,0,1)--++(-1,0,0)--cycle;    %y
    \draw [fill=gray!30] (\x,\y+1,\z)--++(1,0,0)--++(0,0,1)--++(-1,0,0)--cycle;    %y
    \draw [fill=gray!30] (\x+1,\y,\z)--++(0,0,1)--++(0,1,0)--++(0,0,-1)--cycle;    %x
    \draw [fill=gray!30] (\x,\y,\z+1)--++(1,0,0)--++(0,1,0)--++(-1,0,0)--cycle;    %z
    }
    
    
\end{tikzpicture}

\end{document}

이것은 다음 선이 이전 선과 겹치는 그림입니다.

이렇게 그리는데 꼭 점의 좌표가 올바른 순서로 정해져 있을 필요는 없습니다.

관련 정보