segm_intersect | R Documentation |
Do two segments have at least one point in common?
segm_intersect(s1, s2)
s1, s2 |
Two segments, represented by their end points; i.e.,
|
First compares the ‘bounding boxes’, and if those intersect looks at whether the other end points lie on different sides of each segment.
Logical, TRUE
if these segments intersect.
Should be written without reference to the cross
function.
Should also return the intersection point, see the example.
Cormen, Th. H., Ch. E. Leiserson, and R. L. Rivest (2009). Introduction to Algorithms. Third Edition, The MIT Press, Cambridge, MA.
segm_distance
## Not run:
plot(c(0, 1), c(0, 1), type="n",
xlab = "", ylab = "", main = "Segment Intersection")
grid()
for (i in 1:20) {
s1 <- matrix(runif(4), 2, 2)
s2 <- matrix(runif(4), 2, 2)
if (segm_intersect(s1, s2)) {
clr <- "red"
p1 <- s1[1, ]; p2 <- s1[2, ]; p3 <- s2[1, ]; p4 <- s2[2, ]
A <- cbind(p2 - p1, p4 - p3)
b <- (p3 - p1)
a <- solve(A, b)
points((p1 + a[1]*(p2-p1))[1], (p1 + a[1]*(p2-p1))[2], pch = 19, col = "blue")
} else
clr <- "darkred"
lines(s1[,1], s1[, 2], col = clr)
lines(s2[,1], s2[, 2], col = clr)
}
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.