Как рисовать фигуры в трех измерениях в TIKZ

Как рисовать фигуры в трех измерениях в TIKZ

185/5000 Я уже работаю с TIKZ в двух измерениях, но мне никогда не приходилось делать что-либо, связанное с тремя измерениями. Я хотел бы узнать, может ли кто-нибудь помочь мне начать этот рисунок ниже.введите описание изображения здесь

решение1

Использование Tikz в 3D практически такое же, как и в 2D, за исключением того, что вам придется использовать 3D-координаты вместо 2D.

Вот как можно нарисовать 3D-бокс (как видите, можно смешивать 2D- и 3D-координаты. В этом случае z-координата 2D-представлений автоматически считается равной нулю):

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

Это дает ЭМ волна

Связанный контент