I have this interesting question. Given $6$ arbitrary points, I want to identify all the possible circular cones passing through them.
The equation of a right circular cone whose vertex is at $\mathbf{r_0}$ and whose axis is along the unit vector $\mathbf{a}$, and whose semi-vertical angle is $\theta$ is given by
$$ (\mathbf{r} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r} - \mathbf{r_0}) = 0 $$
where $\mathbf{r}$ is the position vector of a point on the surface of the cone. Counting the number of parameters, we have $3$ for $\mathbf{r_0}$, $2$ for $\mathbf{a}$ and $1$ for $\theta$. We therefore need at least $6$ points on the surface of the cone to specify it.
Question: What is the procedure for extracting the parameters of a right circular cone passing through $6$ arbitrary points?
What I have tried: I have parameterized the axis unit vector as
$ \mathbf{a} = ( \sin t \cos s, \sin t \sin s , \cos t ) $
and written
$\mathbf{r_0} = (x, y, z) $
Now define the functions
$ f_1 = (\mathbf{r_1} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_1} - \mathbf{r_0}) $
$ f_2 = (\mathbf{r_2} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_2} - \mathbf{r_0}) $
$ f_3 = (\mathbf{r_3} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_3} - \mathbf{r_0}) $
$ f_4 = (\mathbf{r_4} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_4} - \mathbf{r_0}) $
$ f_5 = (\mathbf{r_5} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_5} - \mathbf{r_0}) $
$ f_6 = (\mathbf{r_6} - \mathbf{r_0})^T ( (\cos \theta)^2 \ \mathbf{I} - \mathbf{aa}^T ) (\mathbf{r_6} - \mathbf{r_0}) $
Now using the multivariate Newton-Raphson method I could iterate to find a solution for the parameter vector $(t, s, x, y, z , \theta )$ that will make $f_1, f_2, f_3, f_4, f_5, f_6$ all zero.
This works, but it's iterative and at best converges to one of the possible right circular cones.
Is there a way to generate all the possible right circular cones that are solutions, i.e. passing the $6$ given points?