add tag
Anonymous 1123
I am trying to draw this figure
![ScreenHunter 23.png](/image?hash=43e23d0f8bab25f3846d3951cafcc31358c59598d6e13f0684fae72323cbc8a3)

With `3dtools`, I tried 
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}%https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view=%
	{phi=110,psi=180,theta=60}]
	\pic{3d/frustum={R=5,r=3,h=3}};
\end{tikzpicture}
\end{document}
```
I got
![ScreenHunter 24.png](/image?hash=95049d1de5bd1a0a576b87cfea835de50d8b07837e51a978c691c9f5d2407bb8)

How to draw a  semisphere on larger circle?
Top Answer
marmot
The upper circle can be drawn with the `circle on sphere` pic. We can add the frustum, but need to make sure that the upper circle does not get overwritten. This can be accomplished with a clip.
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,3dtools}%https://github.com/marmotghost/tikz-3dtools
\begin{document}

\begin{tikzpicture}[3d/install view=%
	{phi=110,psi=180,theta=60},
	declare function={R=5;r=3;h=3;}]
	\path[3d/visible/.append style={postaction={store path=fc}}] 
		pic{3d/circle on sphere={R=R,P={(0,0,0)},n={(0,0,1)}}};
	\path [stored path/first coordinate of=fc] coordinate (fc1)
	 [stored path/last coordinate of=fc] coordinate (fc2);
	\begin{scope}	
	 \path[opacity=0] pic{3d/frustum={R=R,r=r,h=h}};
	 \clip (fc1) -- (fc2) -- (fc2-|current bounding box.east) 
	  -- (current bounding box.south east)
	  -- (current bounding box.south west)
	  -- (fc1-|current bounding box.west) -- cycle;
     \path pic{3d/frustum={R=R,r=r,h=h}}; 
	\end{scope}
	\draw[3d/screen coords] (fc1) arc[start angle=180,end angle=0,radius=R];
\end{tikzpicture}
\end{document}
```
![Screen Shot 2021-03-05 at 11.27.09 PM.png](/image?hash=2ff7d3a1ad01049931c80aef6b50ddc9d649d1e29e31fdec268c8194b1197cc1)

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.