circles.intersect: Determine whether circles intersect

View source: R/circles.intersect.R

circles.intersectR Documentation

Determine whether circles intersect

Description

circles.intersect determines whether circles intersect with each other.

Usage

circles.intersect(coords, r)

Arguments

coords

A matrix of coordinates with the centroid of each circle.

r

A vector containing the radii of the circles. The length of r must equal the number of rows of coords.

Details

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.

Value

Returns a matrix of logical values indicating whether the circles intersect.

Author(s)

Joshua French

Examples

# 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)

jpfrench81/smacpod documentation built on Oct. 2, 2023, 2:57 p.m.