大概也可以说成是解二元二次方程组.
是从...网站上copy的:
The following note describes how to find the intersection point(s) between two circles on a plane, the following notation is used. The aim is to find the two points P3 = (x3, y3) if they exist.
First calculate the distance d between the center of the circles. d = ||P1 - P0||.
- If d > r0 + r1 then there are no solutions, the circles are separate.
- If d < |r0 - r1| then there are no solutions because one circle is contained within the other.
- If d = 0 and r0 = r1 then the circles are coincident and there are an infinite number of solutions.
Considering the two triangles P0P2P3 and P1P2P3 we can write
a 2 + h 2 = r 0 2 and b 2 + h 2 = r 1 2
Using d = a + b we can solve for a,
a = (r 0 2 - r 1 2 + d 2 ) / (2 d)
It can be readily shown that this reduces to r0 when the two circles touch at one point, ie: d = r0 + r1
Solve for h by substituting a into the first equation, h2 = r02 - a2
So
P 2 = P 0 + a ( P 1 - P 0 ) / d
And finally, P3 = (x3,y3) in terms of P0 = (x0,y0), P1 = (x1,y1) and P2 = (x2,y2), is
x3 = x2 +- h ( y1 - y0 ) / d
y3 = y2 -+ h ( x1 - x0 ) / d
其中有几个地方还是说明一下.......................................................................................
a的来源可以说是余弦定理 最后两个求x3 和y3 的式子可以看下面的图 标记粉颜色的角 这两个粉色的三角形相似..............