答案1
这是给你一个开始。正如 John Kormylo 所说,你想使用pic
。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta,calc}
\tikzset{shifted by/.style={to path={($(\tikztostart)!#1!90:(\tikztotarget)$)
-- ($(\tikztotarget)!#1!-90:(\tikztostart)$) \tikztonodes}}}
\begin{document}
\begin{tikzpicture}[pics/tadpole/.style={code={
\tikzset{tadpole/.cd,#1}
\def\pv##1{\pgfkeysvalueof{/tikz/tadpole/##1}}%
\draw[thick,pic actions] (0,0) circle[radius=\pv{r}]
plot[smooth,samples at={0,...,5},variable=\t]
(\pv{r}+\t*\pv{l}/5,{\pv{h}*rnd*(\t>0)});
}},tadpole/.cd,r/.initial=0.3,l/.initial=1.5,h/.initial=0.15,
/tikz/.cd,>={Latex}]
\path[local bounding box=top] foreach \X in {1,...,12}
{(\X,0) pic[rotate=90]{tadpole}};
\draw[thick] (0.5,0.3) -- (12.5,0.3);
%
\begin{scope}[local bounding box=rnd,shift={(2,-4)}]
\pgfmathsetseed{3}
\foreach \X in {1,...,6}
{\pgfmathsetmacro{\myrnd}{rnd*360}
\path (\myrnd:rnd*3) pic[rotate=\myrnd+60*rnd-30]{tadpole};}
\end{scope}
%
\begin{scope}[shift={(9,-7)},local bounding box=ring]
\path foreach \X in {1,...,15} {
({24*\X+2*(rnd-0.5)}:2.1) pic[rotate={180+24*\X+2*(rnd-0.5)}]{tadpole}};
\end{scope}
%
\draw[->,thick,shifted by=4pt] ([yshift=-1ex]top.-110) to
node[midway,below right]{$c_T<c_K$} (rnd.north east);
\draw[->,thick,shifted by=4pt] (rnd.north east) to ([yshift=-1ex]top.-110);
\draw[->,thick,shifted by=4pt] (ring.150) to (rnd.-10);
\draw[->,thick,shifted by=4pt] (rnd.-10) to
node[midway,above right]{$c_T\ge c_K$} (ring.150);
\end{tikzpicture}
\end{document}
为了未来,请自己尝试一些事情,如果遇到困难,请在这里发布问题。