circles.intersect: Determine whether circles intersect

Description Usage Arguments Details Value Author(s) Examples

View source: R/circles.intersect.R

Description

circles.intersect determines whether circles intersect with each other.

Usage

1
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 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)

smacpod documentation built on May 14, 2018, 5:07 p.m.