答案1
首先要说的是:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[>=stealth]
% shape
\draw
% front
(0:0) -- (40:5) arc[start angle=40, end angle=110, radius=5] -- cycle
% top
(40:5) -- ++(1,2) coordinate (AA)
arc[start angle=40, end angle=110, radius=5] coordinate (AB) -- ++(-1,-2)
arc[start angle=110, end angle=40, radius=5] -- cycle;
\draw[dashed]
% lower layer
(40:4.5) -- ++(1,2) coordinate (BA)
arc[start angle=40, end angle=110, radius=4.5] coordinate (BB) -- ++(-1,-2)
(AA) -- (BA)
(AB) -- (BB);
\draw
% lower layer front
(40:4.5) arc[start angle=40, end angle=110, radius=4.5];
\draw[dotted]
% middle layer
(40:4.75) -- ++(1,2) coordinate (CA)
arc[start angle=40, end angle=110, radius=4.75] coordinate (CB) -- ++(-1,-2);
\draw[dash dot]
% middle layer front
(40:4.75) arc[start angle=40, end angle=110, radius=4.75] node[midway, left] {$S$};
% labels
\draw (75:0) -- (75:4.75) node[midway, right] {$R$};
\draw[<->] (110:0.5) arc[start angle=110, end angle=40, radius=0.5]
node[pos=0.25, above] {$\theta$};
\draw (110:0) (110:5) [turn] -- (0,10pt) coordinate (DA);
\draw (110:0) (110:4.5) [turn] -- (0,10pt) coordinate (DB);
\draw[->] ($(DA)!-0.5!(DB)$) -- (DA);
\draw[->] ($(DB)!-0.5!(DA)$) -- (DB);
\node at ($(DA)!0.5!(DB)$) {$h$};
\draw (110:0) (40:5) [turn] -- (0,-10pt) coordinate (EA);
\begin{scope}[shift={(1,2)}]
\draw (110:0) (40:5) [turn] -- (0,-10pt) coordinate (EB);
\end{scope}
\draw[<->] (EA) -- (EB) node[midway, right] {$L$};
\draw (110:4.75) -- ++(0,2) coordinate (FA);
\draw (40:4.75) -- ++(0,2) coordinate (FB);
\draw[<->] (FA) -- (FB) node[midway, above] {$b$};
\end{tikzpicture}
\end{document}