TIKZ에서 3차원으로 그림을 그리는 방법

TIKZ에서 3차원으로 그림을 그리는 방법

185/5000 저는 이미 TIKZ를 사용하여 2차원으로 작업하고 있지만 3차원과 관련된 작업을 전혀 할 필요가 없었습니다. 아래에서 이 그림을 시작하는 데 도움을 줄 수 있는 사람이 있는지 알고 싶습니다.여기에 이미지 설명을 입력하세요

답변1

3D에서 Tikz를 사용하는 것은 2D 대신 3D 좌표를 사용해야 한다는 점을 제외하면 2D에서와 거의 동일합니다.

3D 상자를 그리는 방법은 다음과 같습니다(보시다시피 2D와 3D 좌표를 혼합할 수 있습니다. 이 경우 2D 표현의 z 좌표는 자동으로 0으로 가정됩니다).

\beging{tikzpicture}
    \draw (0,0) -- ++(8,0) -- ++(0,-4) -- ++(-8,0) -- ++(0,4) -- ++(0,0,-4) -- ++(8,0) -- ++(0,-4) -- ++(0,0,4) ++(0,4,0) -- ++(0,0,-4);
    \draw[dashed] (0,-4) -- ++(0,0,-4) -- ++(8,0,0) ++(-8,0) -- ++(0,4);
\end{tikzpicture}

다음은 좀 더 복잡한 예입니다(전자기파).

  \begin{tikzpicture}[x={(-10:1cm)},y={(90:1cm)},z={(210:1cm)}]
    % Axes
    \draw[->] (-1,0,0) node[above] {$x$} -- (5,0,0);
    \draw[->] (0,0,0) -- (0,2,0) node[above] {$y$};
    \draw[->] (0,0,0) -- (0,0,2) node[left] {$z$};
    % Waves
    \draw[red,thick] plot[domain=0:4.5,samples=200] (\x,{cos(deg(pi*\x))},0);
    \draw[blue,thick] plot[domain=0:4.5,samples=200] (\x,0,{cos(deg(pi*\x))});
    % Arrows
    \foreach \x in {0.1,0.3,...,4.4} {
      \draw[red] (\x,0,0) -- (\x,{cos(deg(pi*\x))},0);
      \draw[blue] (\x,0,0) -- (\x,0,{cos(deg(pi*\x))});
    }
    % Labels
    \node[red, above right] at (0,1,0) {$\vec{\bm{E}}$};
    \node[below, blue] at (0,0,1) {$\vec{\bm{H}}$};
  \end{tikzpicture}

이는 다음과 같은 결과를 낳습니다 전자파

관련 정보