Ich möchte ein dreidimensionales (rotierendes) kartesisches Koordinatensystem zeichnen, wie in der beigefügten Abbildung dargestellt. Als neuer Benutzer von TikZ bin ich bei den folgenden Punkten hängen geblieben:
1) So zeichnen Sie zwei Bögen mit gleichem Mittelpunkt und unterschiedlichem Radius (Pfeilspitze)
2) Schnittpunkte zwischen Bogen und Linie
3) gedrehte Koordinaten (einer der Fälle ist in der Abbildung dargestellt) an diesem Schnittpunkt
Mithilfe von Beispielen und Handbuch ist mir heute etwas gelungen, aber das ist sicherlich kein effizienter und intelligenter Weg, dieses Problem anzugehen.
Ich wäre Ihnen sehr dankbar für Ihre Hilfe.
\documentclass[tikz,border=12pt]{standalone}
\usetikzlibrary{intersections}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{60}{110}
\begin{document}
\begin{tikzpicture}
% add: rotation option
\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$};
\draw[red] [name path=A1] (3,0) arc(0:120:3);
\draw[red][name path=r1] (0,0) -- (3,3);
\draw [name intersections={of=A1 and r1, by=y}] (y) circle (1pt);
\draw[blue] (6,0) arc(0:120:6);
\end{tikzpicture}
\end{document}
Antwort1
Um verwenden zu können tikz-3dplot
, müssen Sie das Koordinatensystem installieren. Anschließend 3d
können Sie mit der Bibliothek in verschiedene Ebenen transformieren. In diesen Ebenen können Sie wie gewohnt Bögen zeichnen.
\documentclass[tikz,border=12pt]{standalone}
\usetikzlibrary{3d,calc}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{60}{-80}
\begin{document}
\begin{tikzpicture}[tdplot_main_coords,bullet/.style={fill,circle,inner sep=1.5pt,transform shape}]
\pgfmathsetmacro{\r}{3.5}
\pgfmathsetmacro{\R}{5}
\pgfmathsetmacro{\myangle}{60}
\coordinate (O) at (0,0,0);
% \draw[thick,-stealth] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
% \draw[thick,-stealth] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
% \draw[thick,-stealth] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
\begin{scope}[canvas is xy plane at z=0]
\draw[blue,-latex] (120:\r) arc(120:-30:\r) node[above,black]{$s$};
\path (\myangle:\r) node[bullet] (P1){};
\draw[-stealth] ($(P1)+(\myangle+90:1)$) -- ($(P1)+(\myangle-90:2)$) node[above]{$\hat z$};
\draw[-stealth] (O) -- (0:\r) node[midway,right]{$\rho$};
\draw[-stealth] (O) -- (90:\r) node[midway,below]{$\rho$};
\draw[-stealth] (O) -- (\myangle:\R+1) node[below left]{$\hat x$};
\path (\myangle:\R) node[bullet](P2'){};
\end{scope}
\begin{scope}[canvas is xy plane at z=2]
\draw[red,-latex] (120:\R) arc(120:-30:\R) ;
\path (\myangle:\R)node[bullet] (P2){};
\draw[-stealth,thick] (P2) -- ++ (\myangle-90:0.5) node[midway,above]{$\mathrm{d}\vec r$};
\path (\myangle:\r) node[bullet](P1'){};
\draw[thin] (P2'.center) -- (P2.center) -- (P1'.center);
\end{scope}
\path (P1.center) -- (P1'.center) coordinate[pos=-0.3] (aux1)
coordinate[pos=1.5] (aux2);
\draw[-stealth] (aux1) -- (aux2) node[right]{$\hat y$};
\end{tikzpicture}
\end{document}