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どのように表示するかです。ただし、ループを使用してこのtikzノードのグリッドを描画したいと思います。ここで言及されているforループを使用したいと思います。10 x 10100 x 100for質問ただし、私の 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内または 内で使用できるもう 1 つのソリューションです。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}

ここに画像の説明を入力してください

関連情報