Anonymous 1123
I draw this figure with GeoSpace
![ScreenHunter 79.png](/image?hash=cb67b32dbcf24d438d7dc8ebc4d40bcab082fa8db49ec081556a203de1e17c6a)
I think, I can use a part of this code to draw
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view={phi=110,theta=70},line join = round, line cap = round,
declare function={R=2;v=R;% base radius and height of the cone
r=R/3;% radius of the small circle
h=(R-r)*v/R;% height of the base of the upper circle
}]
\path pic{3d/cone={r=R,h=v}} (0,0,h) pic{3d/cone={r=r,h/.evaluated=v-h}};
\end{tikzpicture}
\end{document}
```
How can I draw it?
Top Answer
user 3.14159
In this case one can just use some combination of cones and arcs.
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view={phi=0,theta=65},
line cap=round,line join=round,
declare function={R=2;% bigger radius
r=1;% radius of the upper, smaller cone
rs=0.6; % radius of the cylinder
h=3;% height of the bigger cone
H=2;% height of the bigger base cylinder
}]
\path (0,0,-H) coordinate (B)
pic{3d/circle on sphere={R=R,C={(0,0,0)},P={(0,0,0)},n={(0,0,1)}}}
(0,0,0) coordinate (O) pic{3d/cone={r=R,h=h}}
(0,0,h-h*r/R) coordinate (T) pic{3d/cone={r=r,h/.evaluated=h*r/R}};
\draw[3d/hidden] (B) circle[radius=rs] (T) circle[radius=rs]
(-rs,0|-T) -- (-rs,0|-B) (rs,0|-T) -- (rs,0|-B);
\draw[3d/visible,3d/screen coords]
(-R,0|-O) -- (-R,0|-B) (R,0|-O) -- (R,0|-B);
\end{tikzpicture}
\end{document}
```
![Screen Shot 2021-04-04 at 8.54.36 PM.png](/image?hash=1f8b824cf0a6e220a3300517db6ca5d489000af9017acd546612afec7c0c7d69)