# How can I improve a truncated conical picture by using tikz?

I want to draw a 3-dimensional truncated conical picture. The only work that I could do is:

    \documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

\begin{tikzpicture}[>=latex]
\fill[fill=gray!50] (1,0) ellipse (0.166 and 0.5);

\fill[fill=gray!50] (1, 0.5) -- (4, 1.5) -- (4, -1.5) -- (1, -0.5)
-- cycle;
\draw[semithick,dashed] (1,0) ellipse (0.1 and 0.4);
\fill[fill=green!60] (4,0) ellipse (0.498 and 1.5);
\fill[fill=gray!20] (4,0) ellipse (0.398 and 1.3);
\draw[thick ] (4,0) ellipse (0.398 and 1.3);

\draw[semithick,dashed] (1,0) +(90:0.5)
\draw[semithick,name path=first ellipse] (1,0) +(270:0.5)
\draw[semithick,name path=second ellipse] (4,0) ellipse (0.498 and 1.5);

% Find intersecions and give them a name
\path[name path=zaxis] (0,0,0) -- (5,0,0);
\path[name intersections={of=zaxis and first ellipse}] (intersection-1)
coordinate (A);
\path[name intersections={of=zaxis and second ellipse}] (intersection-1)
coordinate (B) (intersection-2) coordinate (C);
% Draw the z axis
\draw[thick,->] (0,0,0) -- (A) (C) -- (5,0,0) node[anchor=west]{};
\draw[thick, dashed] (A) -- (C);

\draw (1, 0.5) -- (4, 1.5);
\draw (1, -0.5) -- (4, -1.5);
\end{tikzpicture}

\end{document}


But is it possible to draw something more like the following picture?

You can certainly make the plot more reminiscent of the target outcome. I did not find \thetacrit from a computation but by trial and error so you may need to readjust if you change the view angles.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\definecolor{mantle}{RGB}{64,144,113}
\begin{document}
\tdplotsetmaincoords{90}{-45}
\begin{tikzpicture}[tdplot_main_coords,declare function={R1=4;R2=2;h=3;}]
\pgfmathsetmacro{\thetacrit}{128}
\draw[tdplot_screen_coords,top color=blue!60!black,bottom color=blue!60!white] (-R1+R2,-1.2*R1) rectangle (R1+R2,1.2*R1);
\begin{scope}
\clip plot[smooth,variable=\t,domain=0:360] ({R2*cos(\t)},0,{R2*sin(\t)});
\fill[mantle!80!black,even odd rule]
plot[smooth,variable=\t,domain=\thetacrit:360-\thetacrit] ({R1*cos(\t)},-h,{R1*sin(\t)})
-- plot[smooth,variable=\t,domain=360-\thetacrit:\thetacrit] ({R2*cos(\t)},0,{R2*sin(\t)})
-- cycle;
\end{scope}