\begin{tikzpicture}[
    every node/.style={align=center},
  ]
  % Panel 1: 1-neighborhood of a curve
  \begin{scope}[xshift=-6.5cm]
    \node[anchor=south] at (0, 2.2) {① X = 1-nbh of curve.};
    \draw (0, 0) circle (2cm);
    \node[right] at (2, 0) {\( B_R \)};
    \node at (-1, 1.2) {X};
    \draw[gray, thick, postaction={
      decoration={
        markings,
        mark=between positions 0 and 1 step 3.5mm with {
          \draw[black] (0,0) circle (2mm);
        }
      },
      decorate
    }] plot[smooth, tension=0.8] coordinates {
      (-1.8, -0.5) (-1, 0.5) (0, -0.2) (1, 0.6) (1.8, -0.4)
    };
  \end{scope}

  % Panel 2: Well-spaced grid
  \begin{scope}
    \node[anchor=south] at (0, 2.2) {② Well spaced \( N \times N \) grid.};
    \draw (-2, 2) to[bend left=8] (2, 2);
    \draw (-2, -2) to[bend right=8] (2, -2);
    \draw (-2, -2) -- (-2, 2);
    \draw (2, -2) -- (2, 2);
    \foreach \x in {-1.2, 0, 1.2} {
      \foreach \y in {-1.2, 0, 1.2} {
        \fill (\x, \y) circle (1.5pt);
      }
    }
    \draw[<->] (-1.2, 1.2) -- (0, 1.2);
    \node[above] at (-0.6, 1.2) {\( \frac{R}{N} \)};
  \end{scope}

  % Panel 3: Cluster of balls
  \begin{scope}[xshift=6.5cm]
    \node[anchor=south] at (0, 2.5) {③ Cluster \( N^2 \) unit balls in \( B_N \).};
    \draw (0, 0) circle (2.2cm);
    \draw (0, 0) circle (0.7cm);
    \foreach \i in {1,...,6} {
      \fill (0, 0) ++(360/6 * \i + 20:0.4cm) circle (1.5pt);
    }
    \fill (0, 0) circle (1.5pt);
    \draw[->] (1.2, 1.2) -- (0.5, 0.5);
    \node[above] at (1.2, 1.2) {N};
    \draw[<->] (2.5, -2.2) -- (2.5, 2.2);
    \node[right] at (2.5, 0) {R};
    \node at (0, -2.8) {\( r=N \)};
  \end{scope}
\end{tikzpicture}
