R: Polygon Region

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

`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

    ## 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.0.4 Index]