# Drawing a top in tikz

I want to draw a top to show the Gyroscopic Effect in my techinical reports,just like the figure :

the top can be simplified like a circular cone ...... Could any body give some tips for me ?Thx for your kind reply....

I followed the code in marot marmot but It shows the top of circle with the ratio =1:

How can I fix the bug?

• You have an old version of the 3d library on your machine. This bug has been fixed. If you do not want to update your TeX installation, see tex.stackexchange.com/a/48776/121799. – user121799 Apr 27 at 13:43
• How can I get the 3d libraty updated to the version ?I browse the web but my texlive 2018 just get the wrong result.... – Zhilai Liu May 10 at 4:50
• Which TeX installation are you using? Normally there is a package manager for this. – user121799 May 10 at 4:52

Welcome to TeX-SE! This may give you a start. (I am not very good at typing in stuff from a screen shot, so I let it be.)

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\definecolor{myc}{RGB}{151, 186, 204}
\begin{document}

\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords,>=stealth]
\draw[->] (0,0,0) coordinate (O) -- ++ (5,0,0) node[anchor=north east]{$x$};
\draw[->] (O) -- ++(0,5,0) node[anchor=north west]{$y$};
\draw[->] (O) -- ++(0,0,5) node[anchor=south]{$z$};
\begin{scope}[canvas is xy plane at z=4.9]
\draw[dashed] (0,0) -- (60:1.5);
\pgflowlevelsynccm
\draw[very thick,orange,->] (0,0) -- (40:1.5);
\draw[very thick,orange,->] (40:1.5) arc (40:60:1.5);
\end{scope}

\tdplotsetrotatedcoords{40}{15}{0}
\begin{scope}[tdplot_rotated_coords]
\pgfmathsetmacro{\R}{2}
%   \draw[->,dashed]  (O) -- ++ (5,0,0) node[anchor=north east]{$x'$};
%   \draw[->,dashed]  (O) -- ++(0,5,0) node[anchor=north west]{$y'$};
%   \draw[->,dashed]  (O) -- ++(0,0,5) node[anchor=south]{$z'$};
\draw[very thick,orange] (O) -- (0,0,3);
\draw[left color=myc,right color=myc,middle color=myc!60,fill opacity=0.5]
plot[variable=\x,domain=-110:70,smooth]
({\R*cos(\x)},{\R*sin(\x)},{3}) to[out=-80,in=75] (O)
to[out=95,in=-100] cycle;
\begin{scope}[canvas is xy plane at z=3]