i've just written a small java program that finds the intersection (if any) of two spheres, providing the parametric equation of the circle of intersection if there is one, or the point of intersection in the case that they meet in a single point.
the way i did it was to firstly translate the whole system so that the centre of the first sphere was at the origin, and then to rotate suitably so that the centre of the second led on the positive x-axis.
from this situation it is easy to decide on the solution type, and also to find the parametric equation of the circle of intersection (if it exists) by simply finding 3 points of that circle, applying the inverse of the rotation previously used, and then finding the equation of the plane that the three points were contained in. from there the parametric solution of the solution circle can be found from the intersection of that plane with either sphere.
i was wondering if there was an easier way to do this? how would some of you approach this problem?