template< class Mat,class V, class W>
VAL< Mat*> InterSphere(const V & a, const V & b, const V & c, const W & R)
Compute the real points of intersection of 3 spheres of center
a, b, c and radius r[0], r[1], r[2].
The result is a matrix of type Mat, which columns are the [1,x,y,z]
coordinates of the roots. If there is no solution, the result
is a 4× 2 matrix. It can be used as follows:
<B><PRE>
Vect a(3,"0 0 0"), b(3,"0 1 0"), c(3,"1 0 0")
double r[]={3.618010503,2.844292531,3.176476035}
Mat B = InterSphere$<$ Mat$>$ (a,b,c,r)
</PRE></B>
In order to compute these points of intersection, we construct
the Bezoutian matrix of the 3 equations of spheres, obtained by hidding
the variable z and we solve and a generalized eigenvector problem,
using Lapack.
Intersection of 3 quadrics |
H. Prieto
The inverse kinematic problem of a serial robot |
O. Ruatta