R: Compute convex hull of intersection of two sets of points

intersectn {geometry} | R Documentation

## Compute convex hull of intersection of two sets of points

### Description

Compute convex hull of intersection of two sets of points

### Usage

    intersectn(ps1, ps2, tol = 0, return.chs = TRUE, options = "Tv",
      fp = NULL, autoscale = FALSE)

### Arguments

`ps1` | First set of points
`ps2` | Second set of points
`tol` | Tolerance used to determine if a feasible point lies within the convex hulls of both points and to round off the points generated by the halfspace intersection, which sometimes produces points very close together.
`return.chs` | If `TRUE` (default) return the convex hulls of the first and second sets of points, as well as the convex hull of the intersection.
`options` | Options passed to `halfspacen`. By default this is `Tv`.
`fp` | Coordinates of feasible point, i.e. a point known to lie in the hulls of `ps1` and `ps2`. The feasible point is required for `halfspacen` to find the intersection. `intersectn` tries to find the feasible point automatically using the linear program in `feasible.point`, but currently the linear program fails on some examples where there is an obvious solution. This option overrides the automatic search for a feasible point
`autoscale` | Experimental in v0.4.2 Automatically scale the points to lie in a sensible numeric range. May help to correct some numerical issues.

### Value

List containing named elements: `ch1`, the convex hull of the first set of points, with volumes, areas and normals (see `convhulln`; `ch2`, the convex hull of the first set of points, with volumes, areas and normals; `ps`, the intersection points of convex hulls `ch1` and `ch2`; and `ch`, the convex hull of the intersection points, with volumes, areas and normals.

### Note

`intersectn` was introduced in geometry 0.4.0, and is still under development. It is worth checking results for unexpected behaviour.

### Author(s)

David Sterratt

### See Also

`convhulln`, `halfspacen`, `inhulln`, `feasible.point`

### Examples

    # Two overlapping boxes
    ps1 <- rbox(0, C=0.5)
    ps2 <- rbox(0, C=0.5) + 0.5
    out <- intersectn(ps1, ps2)
    message("Volume of 1st convex hull: ", out$ch1$vol)
    message("Volume of 2nd convex hull: ", out$ch2$vol)
    message("Volume of intersection convex hull: ", out$ch$vol)

[Package geometry version 0.4.2 Index]