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,可以在foreach循環或matrix.

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

在此輸入影像描述

相關內容