add tag
Anonymous 1123
![ScreenHunter 911.png](/image?hash=cc43a3130dba314be5d8c98f2431677411bff80b58f60695a611e51bd4e65134)


![ScreenHunter 909.jpg](/image?hash=abe15b33aef8a14da0e7fce1857f4789ac8b28fcce4d26402cfad1136505864a)

![ScreenHunter 910.png](/image?hash=ccc1930f1ad00f7353d7946af06dcfb57c0750fcc1cf3d6f2787ef9cd01f3286)

![ScreenHunter 912.png](/image?hash=9fc82fc758c992ca1f4acc5382e61cd97016d0a5a80136c9d0fff70f6f5d4bc2)

I do not how to start to draw this. How to draw it?
 
Top Answer
marmot
I think we can recycle the cone from the previous answers.
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{3dtools,calc}
\makeatletter
\tikzset{reuse path/.code={\pgfsyssoftpath@setcurrentpath{#1}}}
\makeatother
\tikzset{reverseclip/.style={overlay,insert path={[reset cm]
      (-16383.99999pt,-16383.99999pt) rectangle
	  (16383.99999pt,16383.99999pt)}}}
\tikzset{pics/3d/cone/.style={code={
	\tikzset{3d/cone/.cd,#1}
	\def\pv##1{\pgfkeysvalueof{/tikz/3d/cone/##1}}%
	\pgfmathsetmacro{\sdtip}{screendepth(0,0,\pv{h})}
	\pgfmathsetmacro{\aspectangle}{atan2(\sdtip,sqrt(\pv{h}*\pv{h}-\sdtip*\sdtip))}
	\path (0,0,\pv{h}) coordinate (-tip);
    \begin{scope}[x={(0,0,tan(\aspectangle))},y={($(0,0,0)!1cm!90:(0,0,\pv{h})$)}]
	 \pgfmathtruncatemacro{\itest}{abs(tan(\aspectangle)*\pv{r}/\pv{h})<1}
	 \ifnum\itest=1
	  \pgfmathsetmacro{\alphacrit}{acos(tan(\aspectangle)*\pv{r}/\pv{h})}
	  \ifdim\sdtip pt>0pt
	   \path[/tikz/3d/cone/hidden] (\alphacrit:\pv{r}) arc[start angle=\alphacrit,end
	   angle=-\alphacrit,radius=\pv{r}];
	   \path[/tikz/3d/cone/visible,save path=\ConeHalo] (\alphacrit:\pv{r}) 
	   arc[start angle=\alphacrit,end  angle=360-\alphacrit,radius=\pv{r}]
	   -- (-tip) -- cycle;
	  \else
	   \path[/tikz/3d/cone/visible] circle[radius=\pv{r}];
	   \path[/tikz/3d/cone/visible] (\alphacrit:\pv{r}) 
	   -- (-tip) -- (360-\alphacrit:\pv{r});
	   \path[save path=\ConeHalo] (\alphacrit:\pv{r}) 
	   arc[start angle=\alphacrit,end  angle=360-\alphacrit,radius=\pv{r}]
	   -- (-tip) -- cycle;
	  \fi
	 \else
	  \path[/tikz/3d/cone/visible,save path=\ConeHalo] circle[radius=\pv{r}];	 
	 \fi
    \end{scope}
	}},
	3d/cone/.cd,r/.initial=1,h/.initial=1,
	hidden/.style={draw,very thin,densely dashed},
	visible/.style=draw}
\begin{document}
\foreach \Angle in {75,70,...,0} %{45} %{5,15,...,355}
{\begin{tikzpicture}[declare function={
	  R=5;% radius of the base of the cone
	  v=-2.5;% height
	  }]
 \path[use as bounding box] (-3,-3) rectangle (12,10);
 \begin{scope}[3d/install view={theta=70,phi=70,psi=00},
	  visible/.style={draw,solid},
	  hidden/.style={draw,very thin,cheating dash}
	  ]
  \path (1,0,0) coordinate (ex)
	  (0,{cos(\Angle)},{sin(\Angle)}) coordinate (ey')
	  (0,{-sin(\Angle)},{cos(\Angle)}) coordinate (ez');
  \path (-R,0,0) coordinate (a) 
	(-R,2*R,0) coordinate (b)  
	(R,2*R,0) coordinate (c)  
	(R,0,0) coordinate (d);
  \begin{scope}[x={(ex)},y={(ey')},z={(ez')}]
   \path (0,R,0) pic{3d/cone={r=R,h=v}};
   \begin{scope}
	\clip[reuse path=\ConeHalo];
	\draw[hidden] (a) -- (b) -- (c) -- (d) -- cycle;
   \end{scope}
   \begin{scope}
	\clip[reuse path=\ConeHalo] [reverseclip];
	\draw[visible] (a) -- (b) -- (c) -- (d) -- cycle;
   \end{scope}
   \draw[visible] (c) -- (d);
  \end{scope}
 \end{scope}
\end{tikzpicture}}
\end{document}
```
![ani.gif](/image?hash=e8f070e89df09c9922b2d06877fd7e213b66359af255f45f34f177d91d71a228)

This room is for discussion about this question.

Once logged in you can direct comments to any contributor here.

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.