tikz 객체의 행렬

tikz 객체의 행렬

다음 코드를 사용하여 tikz 개체를 그립니다.

\begin{tikzpicture}

    % Axis
    \draw (-0.5,0) -- (5.0,0);
    \draw (0,-0.5) -- (0,2.5);

    \node (rect) at (1.5,2) [draw,minimum height=0.65cm,minimum width=2cm,fill=gray!50] {};
    \node (rect) at (2.5,1) [draw,minimum height=0.65cm,minimum width=3cm,fill=gray!50] {};

\end{tikzpicture}

그리고 그 물체는 다음과 같습니다 -

여기에 이미지 설명을 입력하세요

내가 갖고 싶은 것은 그러한 객체의 그리드입니다. 따라서 모든 위치 (1,1), (1,2)...(n,n)의 그리드에 이 객체가 그려져야 합니다.

물론 범위를 사용하여 이 코드를 복사하여 붙여넣고 xshift, yshift여러 코드를 배치할 수 있습니다. 그러한 객체의 10 x 10그리드 또는 심지어 그리드가 어떻게 표시되는지 확인해야 합니다 . 100 x 100그러나 나는for . 그러나 저는 이 tikz 노드 그리드를 그리기 위해 루프 . 여기에 언급된 for 루프를 사용하고 싶습니다.질문. 그러나 내 tikz 노드는 여러 노드(선 2개와 직사각형 2개)로 구성되어 있습니다.

for 루프를 사용하여 객체의 그리드를 그릴 수 있습니까?

답변1

실제로 가능합니다

\begin{tikzpicture}
  \foreach \x in {1,2,3}{
    \foreach \y in {1,2,3}{
    \begin{scope}[shift={(3*\x,2*\y)}]
      \draw (-0.25,0) -- (2.5,0);
      \draw (0,-0.25) -- (0,1.25);
      \node (rect) at (.75,1) [draw,minimum height=0.325cm,minimum width=1cm,fill=gray!50] {};
      \node (rect) at (1.25,.5) [draw,minimum height=0.325cm,minimum width=1.5cm,fill=gray!50] {};
    \end{scope}
    }
  }
\end{tikzpicture}

여기에 이미지 설명을 입력하세요

의견이나 더 나은 솔루션을 원하시면 열어주세요!

답변2

루프 pics또는 .foreachmatrix

\documentclass[border=2mm,tikz]{standalone}

\tikzset{
    myobject/.pic={
      \draw (-0.25,0) -- (2.5,0);
      \draw (0,-0.25) -- (0,1.25);
      \node (rect) at (.75,1) [draw,minimum height=0.325cm,minimum width=1cm,fill=gray!50] {};
      \node (rect) at (1.25,.5) [draw,minimum height=0.325cm,minimum width=1.5cm,fill=gray!50] {};
        }
}

\begin{document}

\begin{tikzpicture}
  \foreach \x in {1,2,3}{
    \foreach \y in {1,2,3}{
    \begin{scope}[shift={(3*\x,2*\y)}]
      \pic{myobject};
    \end{scope}
    }
  }
\end{tikzpicture}

\begin{tikzpicture}
  \matrix [column sep=3mm, row sep=3mm] {
      \pic{myobject}; &  \pic{myobject}; &  \pic{myobject}; \\
      \pic{myobject}; &  \pic{myobject}; &  \pic{myobject}; \\
      \pic{myobject}; &  \pic{myobject}; &  \pic{myobject}; \\
    };
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보