Two circles overlap?

14.8k Views Asked by At

If we have two circles in the plane described by $(x_1, y_1, r_1)$ and $(x_2, y_2, r_2)$ we can determine if they are completely disjoint by simply:

$$(x_1 - x_2)^2 + (y_1 - y_2)^2 < (r_1 + r_2)^2$$

Assume this is not the case, we now want to know if one completely overlaps the other. (That is: if the second circles interior is a subset of the first circles interior.)

If $(x_1, y_1) = (x_2, y_2)$ than we can trivially compare radii, so lets assume their centers are distinct.

The way I have imagined is to create a parametric equation of the line that connects the two centers:

\begin{align} x_p(t) &= x_1 + t(x_2 - x_1) \\ y_p(t) &= y_1 + t(y_2 - y_1) \end{align}

Then we calculate the two line segments (represented as two pairs of t values) where the circles intersect this line. One is a subset of the other if and only if the corresponding circles are subsets of each other.

Is there a simpler approach I am overlooking?

2

There are 2 best solutions below

1
On BEST ANSWER

The furtherest points between a circle and a point, would be on the line from the point, through the center of the circle.

Hence, circle 1 is contained in circle 2, if and only if circle 2 contains that furtherest point, which implies that

$$ r_2 \geq \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} + r_1 $$

As such, one circle will be contained within the other if and only if

$$ (r_1-r_2)^2 \geq (x_1-x_2)^2 + (y_1-y_2)^2$$

Note: This approach should be similar to how you show that 2 circles are disjoint (since the 2 nearest points again lie on the line connecting the circles).

0
On

Try to draw it and see that the first circle is inside the other if and only if the distance between the centers plus the radius of the first must be less than the radius of the second