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

With `3dtools`, I tried 
\begin{tikzpicture}[3d/install view=%
I got
![ScreenHunter 24.png](/image?hash=95049d1de5bd1a0a576b87cfea835de50d8b07837e51a978c691c9f5d2407bb8)

How to draw a  semisphere on larger circle?
Top Answer
user 3.14159
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.

\begin{tikzpicture}[3d/install view=%
	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);
	 \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}}; 
	\draw[3d/screen coords] (fc1) arc[start angle=180,end angle=0,radius=R];
![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.