旋转整个坐标系

旋转整个坐标系

我对 TikZ 还不太熟悉,所以这个问题可能听起来很愚蠢。我怎样才能旋转整个坐标系?这是我所拥有的(简单的 3D 坐标系):

\begin{tikzpicture}[x=1cm, y=1cm, z=-0.6cm]
    % Axes
    \begin{scope}[rotate=0]
    \draw [<->] (-3,0,0) -- (12,0,0) node [at end, right] {$z$};
    \draw [<->] (0,-4,0) -- (0,4,0) node [at end, left] {$y$};
    \draw [<->] (0,0,2) -- (0,0,-4) node [at end, left] {$x$};
    \end{scope}
\end{tikzpicture}

因此,这是一个输出:

在此处输入图片描述

这就是我想要表达的(我只谈论坐标系以及它是如何旋转的):

在此处输入图片描述

任何帮助将不胜感激。

答案1

使用Tom Bombadil 的解决方案,您可以调整每个轴以赋予其所需的角度和方面。

\documentclass[tikz,border=3.141592mm]{standalone}

\begin{document}

    \newcommand{\xangle}{30}
    \newcommand{\yangle}{90}
    \newcommand{\zangle}{-10}
    
    \newcommand{\xlength}{1}
    \newcommand{\ylength}{0.5}
    \newcommand{\zlength}{1}
    
    \pgfmathsetmacro{\xx}{\xlength*cos(\xangle)}
    \pgfmathsetmacro{\xy}{\xlength*sin(\xangle)}
    \pgfmathsetmacro{\yx}{\ylength*cos(\yangle)}
    \pgfmathsetmacro{\yy}{\ylength*sin(\yangle)}
    \pgfmathsetmacro{\zx}{\zlength*cos(\zangle)}
    \pgfmathsetmacro{\zy}{\zlength*sin(\zangle)}
    
    \begin{tikzpicture}[
        x={(\xx cm,\xy cm)},
        y={(\yx cm,\yy cm)},
        z={(\zx cm,\zy cm)}
        ]
        % Axes
        \begin{scope}
        \draw [<->] (-2,0,0) -- (2,0,0) node [at end, right] {$x$};
        \draw [<->] (0,-4,0) -- (0,4,0) node [at end, left] {$y$};
        \draw [<->] (0,0,-2) -- (0,0,6) node [at end, above] {$z$};
        \end{scope}
    \end{tikzpicture}

\end{document}

在此处输入图片描述

编辑:我删除了代码中两行多余的(复制失败)。

相关内容