%\usepackage{pgfplots}
\begin{tikzpicture}
\begin{axis}[
view/az=120,
axis lines=center,
axis on top,
axis equal=true,
enlarge x limits,
trig format plots=rad,
xlabel=$x$,ylabel=$y$,zlabel=$z$,
colormap/viridis,
%shader=interp,
]
\addplot3 [
surf,
samples=50,
samples y=20,
domain=-pi/2:pi/2,
domain y=0:1
] ({sin(x)},{cos(x)},y);
\end{axis}
\end{tikzpicture}
TikZ 的 fill 用于二维的填充,默认采用 /tikz/nonzero rule
这个规则来判断图形的内部。你填充的路径是用三维坐标构造的,但 TikZ 会把它转换为二维路径,再做填充。