eine Matrix von Tikz-Objekten

eine Matrix von Tikz-Objekten

Ich verwende den folgenden Code, um ein Tikz-Objekt zu zeichnen.

\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}

und das Objekt sieht aus wie -

Bildbeschreibung hier eingeben

Ich hätte gern ein Raster mit solchen Objekten. So dass im Raster an jeder Position (1,1), (1,2)... (n,n) dieses Objekt gezeichnet werden soll.

Natürlich kann ich diesen Code kopieren und einfügen, indem ich den Gültigkeitsbereich verwende, xshift, yshiftum viele davon zu platzieren. Was ich brauche, ist, wie 10 x 10das Raster oder sogar 100 x 100das Raster solcher Objekte aussieht. Ich möchte jedoch eine forSchleife verwenden, um dieses Raster aus Tikz-Knoten zu zeichnen. Ich möchte die in diesem Artikel erwähnte For-Schleife verwenden.Frage. Mein Tikz-Knoten besteht jedoch aus mehreren Knoten (2 Linien und 2 Rechtecke).

Ist es möglich, ein Raster von Objekten mithilfe einer For-Schleife zu zeichnen?

Antwort1

Es ist tatsächlich möglich

\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}

Bildbeschreibung hier eingeben

Offen für Kommentare oder bessere Lösungen!

Antwort2

Nur eine weitere Lösung , die innerhalb von Schleifen oder picsverwendet werden kann .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}

Bildbeschreibung hier eingeben

verwandte Informationen