这个问题和我之前问过的问题类似:如何在 TikZ 中将 3D 变换应用于箭头。
但是我在 TikZ 中使用该3d
库。这个问题是关于的tikz-3dplot
。
如何旋转箭头?请考虑这个最小的例子:
以 z 轴箭头为例。我希望能够将其变换为位于 xz 平面或 yz 平面。这可能吗?
平均能量损失
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{60}{120}
\begin{tikzpicture}[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$};
\end{tikzpicture}
\end{document}
答案1
您可以使用3d
库来使用canvas is xz plane at y
和\pgflowlevelsynccm
转换箭头。以下轴z
位于 xz 平面,另外两个轴位于 xy 平面。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\begin{document}
\tdplotsetmaincoords{60}{120}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (O) at (0,0,0);
\begin{scope}[canvas is xz plane at y=0]
\path (0,1) node[anchor=south]{$z$};
\pgflowlevelsynccm
\draw[thick,->] (0,0) -- (0,1);
\end{scope}
\begin{scope}[canvas is xy plane at z=0]
\path (1,0) node[anchor=north east]{$x$}
(0,1) node[anchor=north west]{$y$};
\pgflowlevelsynccm
\draw[thick,->] (0,0) -- (1,0);
\draw[thick,->] (0,0) -- (0,1);
\end{scope}
\end{tikzpicture}
\end{document}