https://github.com/cran/pracma
Tip revision: 03698027c2d84118bd0c53c4a9a5b5d23676f388 authored by HwB on 01 October 2012, 00:00:00 UTC
version 1.2.0
version 1.2.0
Tip revision: 0369802
inpolygon.Rd
\name{inpolygon}
\alias{inpolygon}
\title{
Polygon Region
}
\description{
Points inside polygon region.
}
\usage{
inpolygon(x, y, xp, yp, boundary = FALSE)
}
\arguments{
\item{x, y}{x-, y-coordinates of points to be tested for being inside
the polygon region.}
\item{xp, yp}{coordinates of the vertices specifying the polygon.}
\item{boundary}{Logical; does the boundary belong to the interior.}
}
\details{
For a polygon defined by points \code{(xp, yp)}, determine if the
points \code{(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 \code{x}.
}
\references{
Hormann, K., and A. Agathos (2001). The Point in Polygon Problem for
Arbitrary Polygons. Computational Geometry, Vol. 20, No. 3, pp. 131--144.
}
\note{
Special care taken for points on the boundary.
}
\seealso{
\code{\link{polygon}}
}
\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
\dontrun{
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)}
}
\keyword{ geom }