Ich erkunde das tikz-3dplot
Paket zum Zeichnen von Objekten in 3D und habe ein Problem festgestellt. Ich möchte einfach einen Kreis zeichnen und später auf einige der Punkte verweisen, habe jedoch festgestellt, dass es einen Unterschied zwischen der Verwendung des draw
Befehls und der Verwendung des node
Befehls gibt:
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]
\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$};
\coordinate (O) at (0,0,0);
\tdplotsetcoord{P}{1}{70}{40}
\draw[-stealth,color=blue] (O) -- (P);
\node[draw, circle, radius=0.2] (cir) at (P) {};
\draw[red] (P) circle [radius=0.2];
\draw (cir.south) -- (cir.north);
\end{tikzpicture}%
\end{document}
Warum besteht der Unterschied? Ich würde gerne verwenden node
, da ich beispielsweise die Süd- und Nordpunkte für die spätere Verwendung referenzieren kann, wahrscheinlich eine Projektion. Aber die Verwendung node
liefert nicht die richtige Form (ich möchte, dass der rote Kreis mit gezeichnet wird, node
damit ich ihn referenzieren kann). Ich verstehe nicht, warum das Koordinatensystem node
nicht verwendet wird . Danke.tdplot_main_coords
Antwort1
Dies liegt daran, dass Sie den Kreis standardmäßig in der xy-Ebene zeichnen. Sie können ihn in den Bildschirmkoordinaten zeichnen, um ihn mit dem Knoten zu „synchronisieren“.
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]
\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$};
\coordinate (O) at (0,0,0);
\tdplotsetcoord{P}{1}{70}{40}
\draw[-stealth,color=blue] (O) -- (P);
\node[draw, circle, radius=0.2] (cir) at (P) {};
\draw[red,tdplot_screen_coords] (P) circle [radius=0.2];
\draw (cir.south) -- (cir.north);
\end{tikzpicture}%
\end{document}
Wenn Sie stattdessen möchten, dass der Knoten in der Ebene gezeichnet wird xy
, ist dies mit der Bibliothek möglich 3d
.
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]
\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$};
\coordinate (O) at (0,0,0);
\tdplotsetcoord{P}{1}{70}{40}
\draw[-stealth,color=blue] (O) -- (P);
\begin{scope}[canvas is xy plane at z=0,transform shape]
\node[draw, circle, radius=0.2] (cir) at (P) {};
\end{scope}
\draw[red] (P) circle [radius=0.2];
\draw (cir.south) -- (cir.north);
\end{tikzpicture}%
\end{document}