tikz повернуть 3d стрелку знак

tikz повернуть 3d стрелку знак

СкриншотЯ просто собрал это вместе, используя примеры кода из интернета, но у меня есть проблема: я хочу, чтобы отметки в конце полосы 'a' были параллельны земле, а не были расположены перпендикулярно линии. Есть ли возможность этого добиться?

\begin{tikzpicture}[cm={-1,-1,1,0,(0,0)},x=3.85mm,z=-1cm, scale=0.5]
      \draw (2,-3,-1) coordinate (x) |- (-2,3,-1) coordinate [midway] (h) coordinate (y) -- (-2,3,1) coordinate (a) -- (-2,-3,1) coordinate (z) -- (2,-3,1) edge (x) -- (2,3,1) coordinate (v) edge (h)
      -- (a)  ;
      \draw [dashed] (-2,-3,-1) coordinate (o) edge (x) edge (y) -- (z);
      \draw [->] (0,0,0) -- (2,0,0) node [midway,above] {$x$};
      \draw [->] (0,0,0) -- (0,2,0) node [midway,right] {$y$};
      \draw [->] (0,0,0) -- (0,0,2) node [midway,above] {$z$};

      \draw [|-|] (2, 3.5, -1) -- (-2, 3.5, -1) node[midway, below right] {a};
\end{tikzpicture}

решение1

Вероятно, вам придется рисовать горизонтальные линии самостоятельно, заменяя

\draw [|-|] (2, 3.5, -1) -- (-2, 3.5, -1) node[midway, below right] {a};

к

\draw ( 2, 3.4,-1) -- ( 2, 3.6,-1);
\draw (-2, 3.4,-1) -- (-2, 3.6,-1);
\draw ( 2, 3.5,-1) -- node[right]{a} (-2, 3.5,-1) ;

Обратите внимание, что вы можете избежать всех midways, поместив его nodeпосле оператора строки, а не после конечной координаты.

решение2

Я не знаю, как это сделать одной командой, но вы можете нарисовать галочки как отдельные линии:

\begin{tikzpicture}[cm={-1,-1,1,0,(0,0)},x=3.85mm,z=-1cm, scale=0.5]
      \draw (2,-3,-1) coordinate (x) |- (-2,3,-1) coordinate [midway] (h) coordinate (y) -- (-2,3,1) coordinate (a) -- (-2,-3,1) coordinate (z) -- (2,-3,1) edge (x) -- (2,3,1) coordinate (v) edge (h)
      -- (a)  ;
      \draw [dashed] (-2,-3,-1) coordinate (o) edge (x) edge (y) -- (z);
      \draw [->] (0,0,0) -- (2,0,0) node [midway,above] {$x$};
      \draw [->] (0,0,0) -- (0,2,0) node [midway,right] {$y$};
      \draw [->] (0,0,0) -- (0,0,2) node [midway,above] {$z$};

      \draw [-] (2, 3.5, -1) -- (-2, 3.5, -1) node[midway, below right] {a};
      \draw [-] (2, 3.75, -1) -- (2, 3.3, -1);
      \draw [-] (-2, 3.7, -1) -- (-2, 3.25, -1);
\end{tikzpicture}

В этой форме это не очень удобно, если вы хотите изменить координаты, потому что вам нужно изменить их для трех, а не для одной линии. Если это проблема, вы можете работать с двумя узлами и относительными координатами, так что вам нужно изменить только две переменные.

\begin{tikzpicture}[cm={-1,-1,1,0,(0,0)},x=3.85mm,z=-1cm, scale=0.5]
      \draw (2,-3,-1) coordinate (x) |- (-2,3,-1) coordinate [midway] (h) coordinate (y) -- (-2,3,1) coordinate (a) -- (-2,-3,1) coordinate (z) -- (2,-3,1) edge (x) -- (2,3,1) coordinate (v) edge (h)
      -- (a)  ;
      \draw [dashed] (-2,-3,-1) coordinate (o) edge (x) edge (y) -- (z);
      \draw [->] (0,0,0) -- (2,0,0) node [midway,above] {$x$};
      \draw [->] (0,0,0) -- (0,2,0) node [midway,right] {$y$};
      \draw [->] (0,0,0) -- (0,0,2) node [midway,above] {$z$};

    \node (a1) at (-2, 3.5, -1){};
    \node (a2) at (2, 3.5, -1){};
    \draw [-] (a1.center) -- (a2.center) node[midway, below right] {a};
    \draw [-] (a1.center) -- +(0,-0.25,0) -- +(0,0.2,0);
    \draw [-] (a2.center) -- +(0,-0.2,0) -- +(0,0.25,0);
\end{tikzpicture}

Оба эти образца должны выглядеть следующим образом:

TikZ-образец

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