TikZ의 더 큰 도면에 하위 도면을 어떻게 중첩합니까?

TikZ의 더 큰 도면에 하위 도면을 어떻게 중첩합니까?

여러 개의 복잡한 그림을 그려서 모두 함께 더 큰 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

우선, 노드 내에 그림을 배치합니다. 이 방법은 효과가 있고 여러 번 수행해야 하는 작업이지만 변환을 적용해야 하는 경우에는 사용하기가 어렵습니다.

두 번째 항목은 개념적으로 다이어그램이 동일한 "레벨"에 있는 것, 다른 위치에 있는 것 같습니다. 스코프 환경은 원하는 것에 더 적합합니다.

세 번째는 그렇습니다. 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}

관련 정보