Verwenden von Knoten oder Zeichnen eines Kreises in tikz-3dplot

Verwenden von Knoten oder Zeichnen eines Kreises in tikz-3dplot

Ich erkunde das tikz-3dplotPaket 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 drawBefehls und der Verwendung des nodeBefehls 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 nodeliefert nicht die richtige Form (ich möchte, dass der rote Kreis mit gezeichnet wird, nodedamit ich ihn referenzieren kann). Ich verstehe nicht, warum das Koordinatensystem nodenicht verwendet wird . Danke.tdplot_main_coords

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

verwandte Informationen