1

I'm trying to recreate this picture, but didn't where else to go with. I have the following so far.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,calc}


\begin{document}

\begin{tikzpicture}
        \draw[->] (0,0)--(2,0) node[right]{$y$};
        \draw[->] (0,0)--(-0.75,-1) node[below]{$x$};
        \draw[very thick,->] (0,0)--(0,2) node[above]{L};
        \draw[thick,->] (0,0)--(1.5,-1.0);
\end{tikzpicture}

\end{document}

The image is

enter image description here

**As a reference the coding below gives me something like the following: enter image description here

Dave124
  • 353

1 Answers1

2

You can use tikz-3dplot for that.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords,line cap=round,>=stealth,scale=0.75]
 \begin{scope}[canvas is xy plane at z=0] 
  \foreach \X in {1,...,5}
   {\draw[dotted] circle[radius=\X*1cm];}
  \draw[thick] circle[radius=6cm];
  \draw[-{Latex[bend]},thick] (90:6) arc[start angle=90,end angle=180,radius=6cm];
  \draw[-{Latex[bend]},thick] (270:6) arc[start angle=270,end angle=360,radius=6cm];
  \path (45:6) node[circle,fill,inner sep=1.5pt,label=below:$m$] (m){};
  \draw[-Latex,thick] (0,0) -- (m);
  \draw[-Latex,thick]  (m) -- ++ (135:6) node[near end,below]{$v$};
 \end{scope}
 \draw[->] (0,0,0) coordinate (O) -- (4,0,0) node[pos=1.1] {$x$};
 \draw[->] (O) -- (0,4,0) node[pos=1.1] {$y$};
 \draw[-Latex,thick] (O) -- (0,0,4) node[pos=1.1] {$L$};
\end{tikzpicture}
\end{document}

enter image description here

You can tilt the plane of the circles ,e.g. using this answer.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{arrows.meta,bending}

\makeatletter
%from https://tex.stackexchange.com/a/375604/121799
%along x axis
\define@key{x sphericalkeys}{radius}{\def\myradius{#1}}
\define@key{x sphericalkeys}{theta}{\def\mytheta{#1}}
\define@key{x sphericalkeys}{phi}{\def\myphi{#1}}
\tikzdeclarecoordinatesystem{x spherical}{% %%%rotation around x
    \setkeys{x sphericalkeys}{#1}%
    \pgfpointxyz{\myradius*cos(\mytheta)}{\myradius*sin(\mytheta)*cos(\myphi)}{\myradius*sin(\mytheta)*sin(\myphi)}}

%along y axis
\define@key{y sphericalkeys}{radius}{\def\myradius{#1}}
\define@key{y sphericalkeys}{theta}{\def\mytheta{#1}}
\define@key{y sphericalkeys}{phi}{\def\myphi{#1}}
\tikzdeclarecoordinatesystem{y spherical}{% %%%rotation around x
    \setkeys{y sphericalkeys}{#1}%
    \pgfpointxyz{\myradius*sin(\mytheta)*cos(\myphi)}{\myradius*cos(\mytheta)}{\myradius*sin(\mytheta)*sin(\myphi)}}

%along z axis
\define@key{z sphericalkeys}{radius}{\def\myradius{#1}}
\define@key{z sphericalkeys}{theta}{\def\mytheta{#1}}
\define@key{z sphericalkeys}{phi}{\def\myphi{#1}}
\tikzdeclarecoordinatesystem{z spherical}{% %%%rotation around x
    \setkeys{z sphericalkeys}{#1}%
    \pgfpointxyz{\myradius*sin(\mytheta)*cos(\myphi)}{\myradius*sin(\mytheta)*sin(\myphi)}{\myradius*cos(\mytheta)}}


\makeatother

% definitions to make your life easier
\tikzset{rotate axes about y axis/.code={
\path (y spherical cs:radius=1,theta=90,phi=0+#1) coordinate(xpp)
(y spherical cs:radius=1,theta=00,phi=90+#1) coordinate(ypp) 
(y spherical cs:radius=1,theta=90,phi=90+#1) coordinate(zpp);
},rotate axes about x axis/.code={
\path (x spherical cs:radius=1,theta=00,phi=90+#1) coordinate(xpp)
(x spherical cs:radius=1,theta=90,phi=00+#1) coordinate(ypp) 
(x spherical cs:radius=1,theta=90,phi=90+#1) coordinate(zpp);
},
pitch/.style={rotate axes about y axis=#1,x={(xpp)},y={(ypp)},z={(zpp)}},
roll/.style={rotate axes about x axis=#1,x={(xpp)},y={(ypp)},z={(zpp)}}
}

\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords,line cap=round,>=stealth,scale=0.75]
 \begin{scope}[roll=10,canvas is xy plane at z=0] 
  \foreach \X in {1,...,5}
   {\draw[dotted] circle[radius=\X*1cm];}
  \draw[thick] circle[radius=6cm];
  \draw[-{Latex[bend]},thick] (90:6) arc[start angle=90,end angle=180,radius=6cm];
  \draw[-{Latex[bend]},thick] (270:6) arc[start angle=270,end angle=360,radius=6cm];
  \path (45:6) node[circle,fill,inner sep=1.5pt,label=below:$m$] (m){};
  \draw[-Latex,thick] (0,0) -- (m);
  \draw[-Latex,thick]  (m) -- ++ (135:6) node[near end,below]{$v$};
  \draw[->] (0,0,0) coordinate (O) -- (4,0) node[pos=1.1] {$x$};
  \draw[->] (O) -- (0,4) node[pos=1.1] {$y$};
 \end{scope} 
 \draw[-Latex,thick] (O) -- (0,0,4) node[pos=1.1] {$L$};
\end{tikzpicture}
\end{document}

enter image description here

I am not sure if this makes sense physics-wise, though.

  • Thank you! How would I tilt the circle a little similar to the image? – Dave124 Jan 23 '20 at 06:06
  • 1
    @Dave124 The tilting is easy but do you really want it? The angular momentum vector should be orthogonal to the circles, shouldn't it? –  Jan 23 '20 at 06:07
  • I copied and pasted the code and got an interesting image instead. – Dave124 Jan 23 '20 at 07:27
  • @Dave124 Most likely you have a very old installation. The 3d library had a bug, which got fixed more than a year ago. If you cannot update your installation, use this fix. –  Jan 23 '20 at 07:29
  • Ok. I looked at the reference, but sadly is way beyond my knowledge of how the program compiles. I tried redownloading the package style and basically did nothing. I'm sorry. – Dave124 Jan 23 '20 at 08:16
  • Added the interesting image that I was referencing. – Dave124 Jan 23 '20 at 09:06
  • @Dave124 Please update your TeX installation or add \makeatletter \tikzoption{canvas is xy plane at z}[]{% \def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}% \def\tikz@plane@x{\pgfpointxyz{1}{0}{#1}}% \def\tikz@plane@y{\pgfpointxyz{0}{1}{#1}}% \tikz@canvas@is@plane } \makeatother with the line breaks as in https://tex.stackexchange.com/a/48776 just before \begin{document}. –  Jan 23 '20 at 15:03
  • Thank you so much!!! – Dave124 Jan 23 '20 at 18:30