如何求解垂直于两个圆交点的点?

How to solve for point perpenediculuar to intersection of two circles?

我正在完成 Paul Bourke's formula to find the intersection of two circles,但卡在寻找 "a" 的步骤上。我将概述公式的相关部分。

考虑两个三角形:P0P2P3 和 P1P2P3.

设P0和P1为两个圆的圆心。
设 P3 为两个圆的交点。
令 P2 为圆的两个交点和两个圆之间的线的交点。

令d为两个圆心之间的距离= ||P1 - P0|| = 圆心的距离公式。
设 a 为 P0 到 P2 的距离,b 为 P1 的距离至 P2.

利用勾股定理我们可以推导出:

a2 + h2 = r02 and b2 + h2 = r12

这是我被绊倒的地方:

Using d = a + b we can solve for a,
a = (r02 - r12 + d2 ) / (2 * d)

我不明白查找 a 的公式从何而来。有人可以概述这是如何推导出来的吗?

谢谢!

考虑方程a² + h² = r0²b² + h² = r1²,你可以减去它们得到

a² - b² = r0² - r1²

由于我们知道 b = d - a,我们有:

a² - (d - a)² = r0² - r1²
a² - (d² - 2*a*d + a²) = r0² - r1²
-d² + 2a*d = r0² - r1²
2*a*d = r0² - r1² + d²
a = (r0² - r1² + d²)/(2*d)