Если радиус меньшей сферы равен A, а большой - B, а их центры находятся на расстоянии D единиц друг от друга, то точки пересечения находятся на окружности радиуса r с центром в точке, расположенной непосредственно между центрами двух сферы, то есть у единиц от центра большей сферы, и х единиц от центра другой, где
y = 1/2 (D + (B ^ 2 - A ^ 2) / D)
и
x = 1/2 (D - (B ^ 2 - A ^ 2) / D)
с радиусом
r = B ^ 2 - x ^ 2 = A ^ 2 - y ^ 2
Если вам нужно уравнение для этого круга, лучше всего представить его в виде набора из трех параметризованных уравнений, где координаты x, y и z выражены в виде функции некоторого t, который представляет собой прохождение радиуса вектора один раз по кругу, от нуля до 2PI ...
Чтобы построить эти уравнения, подумайте о том, чтобы выразить точку, которая является радиусом r от центра, на 2D-плоскости, которая перпендикулярна линии между двумя сферами.
Проверьте эту ссылку , чтобы узнать, как это сделать ..
Вывод выглядит следующим образом: проведите линию между центрами двух сфер. Маркируйте это как D
Обозначьте точку на этой линии как центр круга окончательного решения, обозначьте ее точкой O
Пометьте меньшую часть D как x, а большую часть как y
нарисуйте линию от O перпендикулярно к D, для некоторого расстояния r, чтобы представить радиус круга решения
Пометьте конец этого радиуса как Q
Теперь нарисуйте B между центром большей сферы и Q и A от центра меньшей сферы и Q
.
Из Пифагора:
B ^ 2 = y ^ 2 + r ^ 2 и A ^ 2 = x ^ 2 + r ^ 2
итак, после исключения г и немного алгебры,
у-х = (В ^ 2 - А * 2) / (х + у)
Но х + у = D так,
y-x = (B ^ 2 - A * 2) / D
Добавление уравнения x + y = D к приведенному выше исключает x, давая
2y = D + (B ^ 2 - A * 2) / D
или
y = 1/2 ( D + (B^2 - A*2) / D )