inpolygon {pracma} | R Documentation |
Polygon Region
Description
Points inside polygon region.
Usage
inpolygon(x, y, xp, yp, boundary = FALSE)
Arguments
x , y |
x-, y-coordinates of points to be tested for being inside the polygon region. |
xp , yp |
coordinates of the vertices specifying the polygon. |
boundary |
Logical; does the boundary belong to the interior. |
Details
For a polygon defined by points (xp, yp)
, determine if the
points (x, y)
are inside or outside the polygon. The boundary
can be included or excluded (default) for the interior.
Value
Logical vector, the same length as x
.
Note
Special care taken for points on the boundary.
References
Hormann, K., and A. Agathos (2001). The Point in Polygon Problem for Arbitrary Polygons. Computational Geometry, Vol. 20, No. 3, pp. 131–144.
See Also
Examples
xp <- c(0.5, 0.75, 0.75, 0.5, 0.5)
yp <- c(0.5, 0.5, 0.75, 0.75, 0.5)
x <- c(0.6, 0.75, 0.6, 0.5)
y <- c(0.5, 0.6, 0.75, 0.6)
inpolygon(x, y, xp, yp, boundary = FALSE) # FALSE
inpolygon(x, y, xp, yp, boundary = TRUE) # TRUE
## Not run:
pg <- matrix(c(0.15, 0.75, 0.25, 0.45, 0.70,
0.80, 0.35, 0.55, 0.20, 0.90), 5, 2)
plot(c(0, 1), c(0, 1), type="n")
polygon(pg[,1], pg[,2])
P <- matrix(runif(20000), 10000, 2)
R <- inpolygon(P[, 1], P[, 2], pg[, 1], pg[,2])
clrs <- ifelse(R, "red", "blue")
points(P[, 1], P[, 2], pch = ".", col = clrs)
## End(Not run)
[Package pracma version 2.4.4 Index]