Nothing
##
## i n p o l y g o n . R Polygon Interior
##
inpolygon <- function(x, y, xp, yp, boundary = FALSE) {
stopifnot(is.numeric(x), is.numeric(y), length(x) == length(y),
is.numeric(xp), is.numeric(yp), length(xp) == length(yp))
# xmin <- min(xp); xmax <- max(xp) # exclude all points 'far' outside
# ymin <- min(yp); ymax <- max(yp)
n <- length(x)
np <- length(xp)
# Polygon must be closed
if (xp[1] != xp[np] || yp[1] != yp[np]) {
xp <- c(xp, xp[1])
yp <- c(yp, yp[1])
np <- np + 1
}
inpoly <- rep(FALSE, n)
onpoly <- rep(FALSE, n)
j <- np
for (i in 1:np) {
dxp <- xp[j] - xp[i]
dyp <- yp[j] - yp[i]
dist <- dxp * (y - yp[i]) - (x - xp[i]) * dyp
idx1 <- ( ((yp[i] <= y & y < yp[j]) |
(yp[j] <= y & y < yp[i])) &
(0 < dist * dyp) )
inpoly[idx1] <- !inpoly[idx1]
idx2 <- ( ((yp[i] <= y & y <= yp[j]) | (yp[j] <= y & y <= yp[i])) &
((xp[i] <= x & x <= xp[j]) | (xp[j] <= x & x <= xp[i])) &
(0 == dist | !dxp) )
onpoly[idx2] <- TRUE
j <- i
}
if (boundary) inpoly[onpoly] <- TRUE
else inpoly[onpoly] <- FALSE
return(inpoly)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.