此 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{60}{120}%
\begin{tikzpicture}
[tdplot_main_coords,
cube/.style={very thick,black},
grid/.style={very thin,gray},
axis/.style={->,blue,thick}]
%draw a grid in the x-y plane
\foreach \x in {-0.5,0,...,2.5}
\foreach \y in {-0.5,0,...,2.5}
{
\draw[grid] (\x,-0.5) -- (\x,2.5);
\draw[grid] (-0.5,\y) -- (2.5,\y);
}
%draw the main coordinate frame axes
\draw[axis,tdplot_main_coords] (0,0,0) -- (3,0,0) node[anchor=west]{$x$};
\draw[axis,tdplot_main_coords] (0,0,0) -- (0,3,0) node[anchor=north west]{$y$};
\draw[axis,tdplot_main_coords] (0,0,0) -- (0,0,3) node[anchor=west]{$z$};
\end{tikzpicture}
\end{document}
收益
我想旋转方向,使得:
- X 轴移动到 Y 轴所在的位置。
- Y 轴移动到 Z 轴所在的位置。
- Z 轴移动到 X 轴所在的位置。
我不确定这是否不可能,或者tikz-3dplot
会让人感到困惑,但我无法做到这一点\tdplotsetmaincoords{}
答案1
经过一番苦思冥想,我终于成功了。这个包使用欧拉角方向来改变图像透视。
有两个坐标系:主坐标系(仅使用两个角度即可移动)和旋转坐标系(使用三个角度即可移动)。文档中“解释”了主坐标系为何只有两个旋转:“请注意,由于屏幕坐标是二维值,因此此转换不需要旋转矩阵的第三行。”这对我来说完全没有意义。
无论如何,我的解决办法是,保持主坐标系原样,旋转旋转后的坐标系并仅使用它。它遵循 zyz 旋转,看起来像这样
这是 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{0}{0}%
\begin{tikzpicture}
[
tdplot_main_coords,
rotated axis/.style={->,orange,thick},
cube/.style={very thick,black},
]
%draw the rotated coordinate frame axes
\tdplotsetrotatedcoords{15}{-20}{-15}%
\draw[rotated axis, tdplot_rotated_coords] (0,0,0) -- (3,0,0) node[anchor=west]{$x'$};
\draw[rotated axis, tdplot_rotated_coords] (0,0,0) -- (0,3,0) node[anchor=south west]{$y'$};
\draw[rotated axis, tdplot_rotated_coords] (0,0,0) -- (0,0,3) node[anchor=west]{$z'$};
\draw[cube, tdplot_rotated_coords] (0,0,0) -- (0,2,0) -- (2,2,0) -- (2,0,0) -- cycle;
\draw[cube, tdplot_rotated_coords] (0,0,2) -- (0,2,2) -- (2,2,2) -- (2,0,2) -- cycle;
\draw[cube, tdplot_rotated_coords] (0,0,0) -- (0,0,2);
\draw[cube, tdplot_rotated_coords] (0,2,0) -- (0,2,2);
\draw[cube, tdplot_rotated_coords] (2,0,0) -- (2,0,2);
\draw[cube, tdplot_rotated_coords] (2,2,0) -- (2,2,2);
\end{tikzpicture}
\end{document}
结果是