答案1
你可以从这样的事情开始:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, patterns, patterns.meta}
\begin{document}
\begin{tikzpicture}
\node at (0,0) [draw,shape=ellipse,minimum width=2cm] {};
\node at (0,-3cm) [draw,shape=ellipse,minimum width=2cm] {};
\draw (-1,0)node[left]{$\alpha,x$} --node[left]{$c$} (-1,-3)node[left]{$f(x)\equiv y$};
\draw [pattern={Lines[angle=45,distance=5pt]},pattern color=blue] (3,0)node[left]{$x$} --node[left]{$c$} ++(0,-3)node[left]{$y$} --++(6.28,0)node[right]{$y$} --node[right]{$c$} ++(0,3)node[right]{$x$} --cycle;
\end{tikzpicture}
\end{document}
答案2
您可以使用3d工具。请注意,一般来说,垂直线段不是从点(0,-r,0
到的路径(0,r,0)
。我在这段代码中用红色画出了这条线段。
\documentclass[12pt,border= 3.14 mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view={phi=70,psi=0,theta=65},line join = round, line cap = round,declare function={h=5;r=3;}]
\path
(0,0,0) coordinate (O)
(0,0,h) coordinate (O');
\pgfmathsetmacro{\myscreenex}{TDunit("(0,0,1)x(nscreenx,nscreeny,nscreenz)")}
\path[3d coordinate={(L)=(O)-r*(\myscreenex)},3d coordinate={(R)=(L) + (O')}];
\draw[3d/visible] (O') circle[radius = r] (O) circle[radius = r];
\draw[3d/visible] (R) node[left]{$\alpha,x$} --node[left]{$c$} (L)node[left]{$f(x)\equiv y$};
\draw[red] (0,-r,0) -- (0,-r,h);
\end{tikzpicture}
\end{document}