如果小球的半径是A,大球的半径是B,它们的圆心相距D个单位,那么交点在半径为r的圆上,圆心在两个圆心之间球体,距离较大球体中心的 y 个单位,距离另一个球体中心的 x 个单位,其中
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...
要构造这些方程,请考虑在垂直于两个球体之间的线的 2D 平面上表示距中心半径为 r 的点。
查看link 了解如何执行此操作的一些 iedas..
推导如下:在两个球体的中心之间画一条线。将其标记为 D
在这条线上指定一个点作为最终解决方案圆的中心,将其标记为点 O
将 D 的较小部分标记为 x,将较大部分标记为 y
从 O 垂线到 D 画一条线,一段距离 r 表示解圆的半径
将此半径的末端标记为 Q
现在在较大球体的中心到 Q 和 A 从较小球体的中心和 Q 之间绘制 B
来自毕达哥拉斯:
B^2 = y^2 + r^2 和 A^2 = x^2 + r^2
所以,在消除 r 和一点代数之后,
y-x = (B^2 - A*2) / (x+y)
但是 x+y = 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 )