Here is a nice way to make some 3d objects, but I've failed to find a way to connect two 3d objects into single one object like this one (also it would be nice to know how to add arrows with numbers):
This is the MWE I've tried so far (just copied the code and removed some parts). I have no idea how to rotate them, also how to draw half cylinder. I don't even know if that's the right direction to go. But the main problem is connecting 3d objects, if that's possible.
\documentclass[11pt]{scrartcl}
\PassOptionsToPackage{dvipsnames,svgnames}{xcolor}
\usepackage{xkeyval,tkz-base}
\usetikzlibrary{arrows,calc}
\makeatletter%
\define@cmdkey[TKZ]{ell}{color}{}
\define@cmdkey[TKZ]{ell}{shift}{}
\presetkeys[TKZ]{ell}{color = {},shift = 0}{}
\newcommand*{\ellipseThreeD}[1][]{\tkz@ellipseThreeD[#1]}%
\def\tkz@ellipseThreeD#1(#4,#5){%
\setkeys[TKZ]{ell}{#1}%
\draw[yshift=\cmdTKZ@ell@shift cm,dashed] (#4,0) arc(0:180:#4 and #5);
\draw[yshift=\cmdTKZ@ell@shift cm ] (-#4,0) arc(180:360:#4 and #5);
\path[fill=\cmdTKZ@ell@color,opacity=0.5,shade](#2 cm,#3 cm) ellipse (#4 and #5);
}
\def\tkzCone{\pgfutil@ifnextchar[{\tkz@cone}{\tkz@cone[]}}
\def\tkz@cone[#1]#2#3#4{%
\pgfmathsetmacro{\bb}{#2#3}
\pgfmathsetmacro{\yy}{\bb\bb/#4}
\pgfmathsetmacro{\xx}{#2*sqrt((1-\yy)/#4)}
\fill[color=Maroon!10] (0,#4)--(-\xx,\yy) arc(180:360:\xx cm and .5 cm);
\ellipseThreeDcolor=Maroon!30(\xx cm,.5 cm)
\draw (0,#4)--(\xx,\yy);
\draw (0,#4)--(-\xx,\yy);
}%
\def\tkzCylinder{\pgfutil@ifnextchar[{\tkz@cylinder}{\tkz@cylinder[]}}
\def\tkz@cylinder[#1]#2#3#4{%
\pgfmathsetmacro{\bb}{#2#3}
\pgfmathsetmacro{\yy}{\bb\bb/#4}
\pgfmathsetmacro{\xx}{#2*sqrt((1-\yy)/#4)}
\fill[color=Maroon!10] (-\xx cm,0)--(-\xx cm,#4 cm)
arc(180:360:\xx cm and .5 cm)--(\xx cm,0)
arc(360:180:\xx cm and .5 cm);
\ellipseThreeDcolor=Maroon!30(\xx cm,.5 cm)
\begin{scope}[yshift=#4 cm]
\drawfill=\cmdTKZ@ell@color,opacity=0.5,shade ellipse (\xx cm and .5 cm) ;
\end{scope}
\draw (\xx cm,0)--(\xx cm,#4 cm);
\draw (-\xx cm,0)--(-\xx cm,#4 cm);
}%
\begin{document}
\tikz \tkzCone{3}{0}{5};
\hspace{1cm}
\tikz \tkzCylinder{3}{0}{5};
\end{document}
It produces this:



