天天看点

求两圆交点坐标

大概也可以说成是解二元二次方程组.

是从...网站上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 的式子可以看下面的图 标记粉颜色的角 这两个粉色的三角形相似..............

求两圆交点坐标