@marmot, re: [your answer](#a1968), How can I fill like your answer
```
\documentclass[12pt,border=2mm,tikz]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{arrows,calc,backgrounds,intersections}
\makeatletter % https://tex.stackexchange.com/a/38995/121799
\tikzset{
use path/.code={\pgfsyssoftpath@setcurrentpath{#1}}
}
\makeatother
\begin{document}
\tdplotsetmaincoords{60}{110}
\begin{tikzpicture}[tdplot_main_coords,
declare function={dicri(\t,\th,\ph,\R)=%
sin(\th)*sin(\ph)*(2+\R*cos(\t)/3+2*\R*sin(\t)/3)-%
sin(\th)*cos(\ph)*(-2 +2*\R*cos(\t)/3 + \R*sin(\t)/3)+%
cos(\th)*(1+2*\R*cos(\t)/3-2*\R*sin(\t)/3);}]
\pgfmathsetmacro{\R}{5}%
\path coordinate (T) at (3,-3,3)
coordinate (I) at (1,-1,2)
coordinate (n) at (2,-2,1)
coordinate (u) at (1, 2, 2)
coordinate (v) at (2, 1, -2);
% the coordinatesn, u and v are not really used here
\path[tdplot_screen_coords,shift={(I)},use as bounding box] (-1.2*\R,-1.2*\R)rectangle (1.2*\R,1.2*\R);
\foreach \v/\position in {T/above,I/below} {
\draw[fill=black] (\v) circle (0.7pt) node [\position=0.2mm] {$\v$};
}
% \draw[red,thick,-latex] (0,0,0) --
% ({sin(\tdplotmaintheta)*sin(\tdplotmainphi)},
% {-sin(\tdplotmaintheta)*cos(\tdplotmainphi)},{cos(\tdplotmaintheta)});
% normal to screen
\begin{scope}[tdplot_screen_coords, on background layer]
\fill[ball color=green, opacity=0.8] (I) circle (\R);
% determine the zeros of dicri
\path[overlay,name path=dicri] plot[variable=\x,domain=0:360,samples=73]
({\x*1pt},{dicri(\x,\tdplotmaintheta,\tdplotmainphi,4)});
\path[overlay,name path=zero] (0,0) -- (360pt,0);
\path[name intersections={of=dicri and zero,total=\t}]
let \p1=(intersection-1),\p2=(intersection-2) in
\pgfextra{\xdef\tmin{\x1}\xdef\tmax{\x2}};
\end{scope}
\pgfmathsetmacro{\SmallR}{4}
\draw[dashed] plot[variable=\t,domain=\tmin:\tmax,samples=50,smooth]
({1+2+\SmallR*cos(\t)/3+2*\SmallR*sin(\t)/3},
{-1-2 +2*\SmallR*cos(\t)/3+ \SmallR*sin(\t)/3},
{2+1+2*\SmallR*cos(\t)/3 - 2*\SmallR*sin(\t)/3 });
\draw[thick,save path=\pathA] plot[variable=\t,domain=\tmax:\tmin+360,samples=50,smooth]
({1+2+\SmallR*cos(\t)/3+2*\SmallR*sin(\t)/3},
{-1-2 +2*\SmallR*cos(\t)/3+ \SmallR*sin(\t)/3},
{2+1+2*\SmallR*cos(\t)/3 - 2*\SmallR*sin(\t)/3 });
\path ({1+2+\SmallR*cos(\tmin)/3+2*\SmallR*sin(\tmin)/3},
{-1-2 +2*\SmallR*cos(\tmin)/3+ \SmallR*sin(\tmin)/3},
{2+1+2*\SmallR*cos(\tmin)/3 - 2*\SmallR*sin(\tmin)/3 }) coordinate (pmin)
({1+2+\SmallR*cos(\tmax)/3+2*\SmallR*sin(\tmax)/3},
{-1-2 +2*\SmallR*cos(\tmax)/3+ \SmallR*sin(\tmax)/3},
{2+1+2*\SmallR*cos(\tmax)/3 - 2*\SmallR*sin(\tmax)/3 }) coordinate (pmax);
\begin{scope}[tdplot_screen_coords]
\clip[shift={(I)}] (-1.2*\R,-1.2*\R)rectangle (1.2*\R,1.2*\R);
\path[fill=gray,fill opacity=0.4,even odd rule] let \p1=($(pmin)-(I)$),\p2=($(pmax)-(I)$),
\p3=($(pmax)-(pmin)$),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
\n3={atan2(\y3,\x3)}
in [use path=\pathA] (pmin) arc(\n1:\n2-360:\R)
(0,-6) -- ++(\n3:{12cm/sin(\n3)}) -- ++(\n3+90:{12cm/sin(\n3)})
-- ++(\n3+180:{12cm/sin(\n3)}) -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}
```