TikZ でサブ図面を大きな図面にネストするにはどうすればよいですか?

TikZ でサブ図面を大きな図面にネストするにはどうすればよいですか?

複数の複雑な図面を描き、それらをすべてまとめて 1 つの大きな TikZ 図面にしたいです。どうすればいいでしょうか?

これまで私がやったことは以下の通りです:

\documentclass[preview]{standalone}

\begin{document}
\begin{tikzpicture}
  \draw[help lines] (0,0) grid (10, 10);

  \node (rectifier) at (0,0) {
    \begin{tikzpicture}
      \node (sine) at (1.25,3) {
        \begin{tikzpicture}[scale=0.4]
          \draw (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0);
        \end{tikzpicture}
      };
      \node (rect) at (2.75,1) {
        \begin{tikzpicture}[scale=0.4]
          \draw (0,2) sin ++(1,1) cos (2,2) sin (3,3) cos (4,2) ;
        \end{tikzpicture}
      };
      \draw (0,0) rectangle (4,4) -- (0,0);
    \end{tikzpicture}
  };
\end{tikzpicture}
\end{document}

問題:
次のように、ボックス全体(rectifier)とそのすべての内容をトップレベルからスケーラブルにしたいと思います。

\node (rectifier) at (0,0) {
  \begin{tikzpicture}[scale=0.5]
  ...
  ...
  ...

ただし、ボックスのみが拡大縮小され、正弦波の描画は拡大縮小されません。

拡大:
TikZ には、オブジェクトのクラスを宣言し、それを大きな図面で簡単にインスタンス化できる「オブジェクト指向」パラダイムがありますか?

答え1

まず、ノード内に画像を配置します。これは機能し、多くの場合は実行する必要がありますが、変換を適用する必要がある場合は使用が困難です。

2 番目の項目は、概念的には、図は同じ「レベル」にあるもののように見えますが、場所が異なります。スコープ環境の方が、必要なことに適しています。

3 つ目は、はい、tikz にはオブジェクト指向構造があります。私はこれを使用しません (このサイトのほとんどの回答から判断すると、ほとんどの人はこれを使用しません)。マニュアルに情報が記載されています。

スコープを使用するコードのバージョンは次のとおりです。

\documentclass[preview]{standalone}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\draw[help lines] (0,0) grid (10, 10);

\begin{scope}[scale=0.5]

\draw[green,shift={(1.25,3)}] (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0);  
\draw[blue,shift={(2.75,1)}] (0,2) sin ++(1,1) cos (2,2) sin (3,3) cos (4,2) ;

\draw (0,0) rectangle (4,4) -- (0,0);

\end{scope}

%The same stuff, but shifted, to show you can shift a whole picture 
\begin{scope}[scale=0.5,shift={(5,5)}]

\draw[green,shift={(1.25,3)}] (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0);  
\draw[blue,shift={(2.75,1)}] (0,2) sin ++(1,1) cos (2,2) sin (3,3) cos (4,2) ;

\draw (0,0) rectangle (4,4) -- (0,0);

\end{scope}

\end{tikzpicture}
\end{document}

関連情報