我可以使用 tikz-3dplot 将 z 轴设置为指向右侧吗?

我可以使用 tikz-3dplot 将 z 轴设置为指向右侧吗?

我想要做的就是旋转问题中接受的答案的轴

如何绘制和注释球面坐标系

使得新的 z 轴保持在当前 y 轴的位置。

我的新轴(例如,x'、y' 和 z')应该看起来与那些 xyz 轴完全一致,但具有以下对应关系:

  • z' <- y
  • y' <- x
  • x' <- z

我不想简单地改变轴的标签,因为我想要使轴 z' 仍然沿着方向 (0,0,1) 并且角度 theta 仍然必须来自该方向。

来自如何绘制和注释球面坐标系以下:

在此处输入图片描述

\documentclass{article} 

\usepackage{tikz}
\usepackage{tikz-3dplot}

\begin{document}
\tdplotsetmaincoords{60}{110}
%
\pgfmathsetmacro{\rvec}{.8}
\pgfmathsetmacro{\thetavec}{30}
\pgfmathsetmacro{\phivec}{60}
%
\begin{tikzpicture}[scale=5,tdplot_main_coords]
\coordinate (O) at (0,0,0);
\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
\tdplotsetcoord{P}{\rvec}{\thetavec}{\phivec}
\draw[-stealth,color=red] (O) -- (P) node[above right] {$P$};
\draw[dashed, color=red] (O) -- (Pxy);
\draw[dashed, color=red] (P) -- (Pxy);
\tdplotdrawarc{(O)}{0.2}{0}{\phivec}{anchor=north}{$\phi$}
\tdplotsetthetaplanecoords{\phivec}
\tdplotdrawarc[tdplot_rotated_coords]{(0,0,0)}{0.5}{0}%
    {\thetavec}{anchor=south west}{$\theta$}
\end{tikzpicture}
\end{document}

我无法做到这一点,\tdplotsetmaincoords{}{}因为该命令仅绕 x 轴旋转,然后绕新的 z 轴旋转(从下面显示的配置),而达到我的配置需要第三次旋转(如欧拉角)或绕 y 轴旋转。

这是来自的图片改变 tikz-3dplot 图片中的轴(bobobobo 的回答)使用 tdplotsetmaincoords 显示旋转的起始配置

使用命令 tdplotsetmaincoords{}{} 开始旋转配置。

答案1

我终于能够用 来做到这一点\tdplotsetrotatedcoords{-90}{-90}{0}。我还必须用 来\tdplotsetrotatedthetaplanecoords{\phivec}代替\tdplotsetthetaplanecoords{\phivec}

旋转的球面坐标角。

\documentclass{article} 

\usepackage{tikz}
\usepackage{tikz-3dplot}

\begin{document}

\tdplotsetmaincoords{60}{110}
\tdplotsetrotatedcoords{-90}{-90}{0}
%
\begin{tikzpicture}[scale=5,tdplot_rotated_coords]
  \coordinate (O) at (0,0,0);
  \draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
  \draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
  \draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
  \def\rvec{1}
  \def\thetavec{45}
  \def\phivec{30}
  \tdplotsetcoord{P}{\rvec}{\thetavec}{\phivec}
  \draw[-stealth,color=red] (O) -- (P) node[above right] {$P$};
  \draw[dashed, color=red] (O) -- (Pxy);
  \draw[dashed, color=red] (P) -- (Pxy);
%  \draw[dashed, color=red] (P) -- (Pyz);
%  \draw[dashed, color=red] (O) -- (Pxz);
%  \draw[dashed, color=red] (P) -- (Pxz);
  \tdplotdrawarc[tdplot_rotated_coords]{(O)}{0.2}{0}{\phivec}{anchor=north east}{$\phi$}
  \tdplotsetrotatedthetaplanecoords{\phivec}
  \tdplotdrawarc[tdplot_rotated_coords]{(0,0,0)}{0.5}{0}{\thetavec}{anchor=south west}{$\theta$}
\end{tikzpicture}

\end{document}

相关内容