add tag
joulev
I am trying to draw this in Ti*k*Z.

![original figure](https://topanswers.xyz/image?hash=48e4f2d7f99451a9257c7a86f0517033c8077d6f981d615728814d0ee2b0de24)

This is what I have done, so far.

```
\documentclass[tikz,margin=3mm]{standalone}
\usetikzlibrary{3d}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}[x=(-45:1.2),z=(45:1.2)]
  \draw (0,0,0) -- (4,0,0) node[right] {$x$}
    (0,0,0) -- (0,3,0) node[above] {$y$}
    (0,0,2) -- (0,0,-2) node[left] {$z$};
  \begin{scope}[canvas is xy plane at z=0]
    \draw[thick,red,->] (0,0) -- (80:2) node[above right] {$\mathbf{v}$};
    \draw (.4,0) arc (0:80:.4);
    \coordinate (x) at (30:.2);
  \end{scope}
  \draw (x) -- ++ (-.5,0) node[left] {\ang{85.0}};
  \draw[thick,green!50!black,->] (1,0,-1) -- (3,0,-1)
    node[midway,below left] {$\mathbf{B}$};
  \draw (1,0,2) -- (1,0,3) (2,0,2) -- (2,0,3);
  \draw[<->] (1,0,2.5) -- (2,0,2.5) node[midway,below left] {$p$};
\end{tikzpicture}
\end{document}
```

![attempt so far](https://topanswers.xyz/image?hash=b99e5503a97601fe1548cf468bbbabbd7c51e5449be5b866edf6d6802914be7e)

The spiral is 3d-ish and has many dashed segments. That is where I got stuck: at least to me, `coil` from decoration libraries isn't helpful in this case.

So how can I draw the spiral?

Thanks in advance.
Top Answer
marmot
You can just draw a parametric curve. I added such a curve to your code.
```
\documentclass[tikz,margin=3mm]{standalone}
\usetikzlibrary{3d,arrows.meta,bending}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}[x=(-45:1.2),z=(45:1.2),declare function={r=1;s=1/600;}]
  \draw (0,0,0) -- (4,0,0) node[right] {$x$}
    (0,0,0) -- (0,3,0) node[above] {$y$}
    (0,0,2) -- (0,0,-2) node[left] {$z$};
  \begin{scope}[canvas is xy plane at z=0]
    \draw[thick,red,->] (0,0) -- (80:2) node[above right] {$\mathbf{v}$};
    \draw (.4,0) arc (0:80:.4);
    \coordinate (x) at (30:.2);
  \end{scope}
  \draw (x) -- ++ (-.5,0) node[left] {\ang{85.0}};
  \draw[thick,green!50!black,->] (1,0,-1) -- (3,0,-1)
    node[midway,below left] {$\mathbf{B}$};
  \draw (1,0,2) -- (1,0,3) (2,0,2) -- (2,0,3);
  \draw[<->] (1,0,2.5) -- (2,0,2.5) node[midway,below left] {$p$};
  \foreach \X in {0,...,4}
  {\ifnum\X=4
    \draw[orange,thick,dashed] 
     plot[variable=\t,domain=180:270,smooth,samples=5]
     (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \else
    \draw[orange,thick,dashed] 
     plot[variable=\t,domain=180:360,smooth,samples=9]
     (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \fi
   \draw[orange,thick,-{Stealth[bend,length=3mm,width=1.5mm]}]
    plot[variable=\t,domain=0:90,smooth,samples=5]
	(s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \draw[orange,thick] plot[variable=\t,domain=0:180,smooth,samples=9]
  (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});}
\end{tikzpicture}
\end{document}
```
![Screen Shot 2020-10-14 at 8.43.44 AM.png](/image?hash=d669cc57df6778ea68ce68e12f9174280cadbe596050b93d1eaa27ad5fe932ba)

If you install an orthographic projection, you get something like
```
\documentclass[tikz,margin=3mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d,arrows.meta,bending}
\usepackage{siunitx}
\begin{document}
\tdplotsetmaincoords{60}{70}
\begin{tikzpicture}[tdplot_main_coords,declare function={r=1;s=1/600;}]
 \path (0,0,1) coordinate (ey) (1,0,0) coordinate (ex) (0,1,0) coordinate (ez);
 \begin{scope}[x={(ex)},y={(ey)},z={(ez)}]
  \draw (0,0,0) -- (4,0,0) node[right] {$x$}
    (0,0,0) -- (0,3,0) node[above] {$y$}
    (0,0,2) -- (0,0,-2) node[left] {$z$};
  \begin{scope}[canvas is xy plane at z=0]
    \draw[thick,red,->] (0,0) -- (80:2) node[above right] {$\mathbf{v}$};
    \draw (.4,0) arc (0:80:.4);
    \coordinate (x) at (30:.2);
  \end{scope}
  \draw (x) -- ++ (-.5,0) node[left] {\ang{85.0}};
  \draw[thick,green!50!black,->] (1,0,-1) -- (3,0,-1)
    node[midway,below left] {$\mathbf{B}$};
  \draw (1,0,2) -- (1,0,3) (2,0,2) -- (2,0,3);
  \draw[<->] (1,0,2.5) -- (2,0,2.5) node[midway,below left] {$p$};
  \foreach \X in {0,...,4}
  {\ifnum\X=4
    \draw[orange,thick,dashed] 
     plot[variable=\t,domain=180:270,smooth,samples=5]
     (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \else
    \draw[orange,thick,dashed] 
     plot[variable=\t,domain=180:360,smooth,samples=9]
     (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \fi
   \draw[orange,thick,-{Stealth[bend,length=3mm,width=1.5mm]}]
    plot[variable=\t,domain=0:90,smooth,samples=5]
	(s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});
   \draw[orange,thick] plot[variable=\t,domain=0:180,smooth,samples=9]
  (s*\X*360+s*\t,{r*sin(\t)},{r-r*cos(\t)});}
 \end{scope}
\end{tikzpicture}
\end{document}
```
![Screen Shot 2020-10-14 at 9.01.12 AM.png](/image?hash=72e43e734aa1ba506c9da769653e445a9335636dc812bc1bd06466b9bbfba350)

You can adjust the parameters of `\tdplotsetmaincoords{60}{70}` to change the view. Note that your coordinate system has an unconventional orientation in that the orthogonal transformation that installs the view has determinant -1. In other words, in your picture the righthanded rather the lefthanded particles participate in the weak interactions. As illustrated [here](https://xkcd.com/2364/)

![Screen Shot 2020-10-14 at 9.04.56 AM.png](/image?hash=5ea13d3e3e30d69cc335cf0ccb462b90782d475f76e36b0b320b4ca47167c35b)

this may have unpleasant consequences. :smile_cat:

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.