Насколько я могу судить, вы запрашиваете локусы пересечения каждой пары из N трехмерных сфер.Считая симметрию, существует N * (N-1) / 2 пары.
Итак, возьмем каждую пару.Если расстояние между центрами больше, чем сумма их радиусов, пересечения нет.(Правка: или, как указывает @Ben, если расстояние меньше, чем разница радиусов, пересечения также нет.)
Если оно равно, пересечение представляет собой одну точку, которую легко найти наотрезок между центрами.Если оно меньше, локус - это круг, а не точка.
Чтобы найти центр этого круга и его радиус, вам понадобится срезать плоскость через две сферы.Это сводит проблему к поиску пересечения двух окружностей.Для этого вам нужен закон косинусов .
Разработано: Посмотрите на эту диаграмму Википедии. a и b - радиусы двух сфер, а c - расстояние между центрами.Используйте второе-последнее уравнение и решите для cos (alpha) .Из этого вы можете легко получить грех (альфа) * 1022 *.Тогда b sin (alpha) - радиус круга, а b cos (alpha) - расстояние до его центра.(Примечание: это не вызывает никаких тригонометрических функций, только sqrt .)
Как только вы узнаете центр и радиус круга пересечения, сам круг находится просто в плоскости, нормальнойк отрезку, соединяющему центры сфер.
Кроме того, я не совсем уверен, что вы хотите.