
現在、以下のコードを持っています
\tdplotsetmaincoords{60}{45}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\tdplotsetcoord{P}{3}{45}{45}
\draw[thick, ->] (0,0,0) -- (3,0,0) node[anchor=north east]{$x$ (front)};
\draw[thick, ->] (0,0,0) -- (0,3,0) node[anchor=north west]{$y$ (left)};
\draw[thick, ->] (0,0,0) -- (0,0,3) node[anchor=south]{$z$ (up)};
\draw[-stealth, color=red](0) -- (P) node[anchor=west]{$r$};
\draw[dashed, color=red] (0) -- (Pxy);
\draw[dashed, color=red] (Pxy) -- (P);
\tdplotsetcoord{Pxy}{3}{\tdplotresphi}{0}
\tdplotgetpolarcoords{1.5}{1.5}{2.12}
\tdplotsetthetaplanecoords{\tdplotresphi}
\tdplotdrawarc{(0)}{1.5}{0}{\tdplotresphi}{anchor=west}{$\theta$}
\tdplotdrawarc[dashed]{(0)}{1.5}{\tdplotresphi}{90}{anchor=west}{$\phi$}
\end{tikzpicture}
これを変更して、ラベルの付いた角度\phi
が現在の原点 Pxy からベクトルまで測定されr
、仰角が示されるようにします。つまり、Pxy から Z 軸に向かって測定および配置される必要があります。
答え1
マニュアルの 27 ページによると、回転した平面に切り替える必要があります。
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{60}{45}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\tdplotsetcoord{P}{3}{45}{45}
\draw[thick, ->] (0,0,0) -- (3,0,0) node[anchor=north east]{$x$ (front)};
\draw[thick, ->] (0,0,0) -- (0,3,0) node[anchor=north west]{$y$ (left)};
\draw[thick, ->] (0,0,0) -- (0,0,3) node[anchor=south]{$z$ (up)};
\draw[-stealth, color=red](0) -- (P) node[anchor=west]{$r$};
\draw[dashed, color=red] (0) -- (Pxy);
\draw[dashed, color=red] (Pxy) -- (P);
\tdplotgetpolarcoords{1.5}{1.5}{2.12}
\tdplotsetcoord{Pxy}{3}{\tdplotresphi}{0}
\tdplotsetthetaplanecoords{\tdplotresphi}
\tdplotdrawarc{(0)}{1.5}{0}{\tdplotresphi}{anchor=west}{$\theta$}
%\tdplotdrawarc[dashed]{(0)}{1.5}{\tdplotresphi}{90}{anchor=west}{$\phi$}
\tdplotsetthetaplanecoords{\tdplotresphi}
\tdplotdrawarc[tdplot_rotated_coords,dashed]{(0,0,0)}{1.5}{90}%
{\tdplotresphi}{anchor=west}{$\phi$}
\end{tikzpicture}
\end{document}