Let the point we want the circle to contain be $\mathbf p_0$, and the other points be $\mathbf p_1, \ldots, \mathbf p_n$. If the circle is centered at $\mathbf q$, the largest radius it can have is
$$r(\mathbf q) = \min_{i=1}^n\|\mathbf q-\mathbf p_i\|.$$
For the circle to contain $\mathbf p_0$, we need $\|\mathbf q-\mathbf p_0\|\le r(\mathbf q)$, which if you plug in the definition of $r(\mathbf q)$ just means that $\mathbf q$ is closer to $\mathbf p_0$ than any other $\mathbf p_i$; in other words, it lies in the cell corresponding to $\mathbf p_0$ in the Voronoi diagram of $\{\mathbf p_0, \mathbf p_1, \ldots, \mathbf p_n\}$. So, our problem reduces to finding the maximum of $r(\mathbf q)$ within the Voronoi cell of $\mathbf p_0$, which I'll call $C$.
There are two possibilities: either the maximum lies in the interior of $C$, or it lies on its boundary. In the former case, it must be an unconstrained local maximum of $\min_{i=1}^n\|\mathbf q-\mathbf p_i\|$; any such maximum is a vertex of the Voronoi diagram of $\{\mathbf p_1,\ldots,\mathbf p_n\}$. In the latter case, if $\mathbf q$ lies on an edge, you can always increase $r(\mathbf q)$ by moving along the edge, so the maximum must occur at a vertex of $C$.
So, here is an algorithm:
- Construct the Voronoi diagram $\mathcal V$ of $\{\mathbf p_0,\mathbf p_1,\ldots,\mathbf p_n\}$.
- Let $C$ be the cell of $\mathcal V$ corresponding to $\mathbf p_0$.
- Evaluate $r(\mathbf q)$ for all vertices of $C$.
- Construct the Voronoi diagram $\mathcal V'$ of $\{\mathbf p_1,\ldots,\mathbf p_n\}$. (There should exist efficient algorithms for removing a single point $\mathbf p_0$ from a previously computed Voronoi diagram $\mathcal V$.)
- Evaluate $r(\mathbf q)$ at all vertices of $\mathcal V'$ that lie inside $C$.
- Choose the point from steps 3 and 5 with the largest $r(\mathbf q)$. The desired circle has center $\mathbf q$ and radius $r(\mathbf q)$.
Implementation notes: Since you want to do this for each point one by one, you don't have to repeat step 1, which ought to be the most expensive step. Also, in steps 3 and 5, you already have a Voronoi diagram, so you can evaluate $r(\mathbf q)$ without actually iterating over all $n$ points.
randPoints
other than the point of interest; but which vertex, that's the hard part... $\endgroup$