Edit and compile if you like:



      axis equal image,
      axis lines=middle,
      clip bounding box=upper bound,

    \addplot3[domain=0:360,y domain=0:320, samples=50,surf,z buffer=sort]
    ({(12 + 3 * cos(x)) * cos(y)} ,
    {(12 + 3 * cos(x)) * sin(y)},
    {3 * sin(x)});
    % use axis coordinate system to draw the radii
    \draw [thick,blue] (axis cs: 0,0,0) -- (axis cs: 12,0,0) node [midway,above=-2] {$R$};
    \draw [thick,red] (axis cs: 12,-0.2,0) -- (axis cs: 12,3.7,0) node [midway,below right=-3] {$r$};

    % use axis coordinate system to draw fake x, y and z axes
    \draw [-latex] (axis cs: 0,0,0) -- node [pos=0.9, xshift=0.5em]{$z$}(axis cs: 0,0,10);
    \draw [-latex] (axis cs: 0,-15,0) --
    node [pos=0.9, xshift=-1em, yshift=0.5em]{$y$}(axis cs: 0,-20,0);
    \draw (axis cs: 0,0,0) -- (axis cs: 0,9,0);
    \draw (axis cs: 0,0,0) -- (axis cs: -9,0,0);

Click to download: torus.tex
Open in Overleaf: torus.tex
This file is available on and on GitHub and is MIT licensed.
See more on the author page of Janosh Riebesell..

Leave a Reply

Your email address will not be published.