Determine whether circles intersect
circles.intersect
determines whether circles
intersect with each other.
circles.intersect(coords, r)
coords |
A matrix of coordinates with the centroid of each circle. |
r |
A vector containing the radii of the circles.
The length of |
The algorithm is based on the premise that two circles intersect if, and only if, the distance between their centroids is between the sum and the difference of their radii. I have squared the respective parts of the inequality in the implemented algorithm.
Returns a matrix of logical values indicating whether the circles intersect.
Joshua French
# first two circles intersect each other, # the next two circles intersect each other # (but not the previous ones) # the last circles doesn't intersect any other circle co = cbind(c(1, 2, 5, 6, 9), c(1, 2, 5, 6, 9)) r = c(1.25, 1.25, 1.25, 1.25, 1.25) # draw circles circles.plot(co, r) # confirm intersections circles.intersect(co, r) # nested circles (don't intersect) co = matrix(rep(0, 4), nrow = 2) r = c(1, 1.5) circles.plot(co, r) circles.intersect(co, r)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.