intersectn: Compute convex hull of intersection of two sets of points In geometry: Mesh Generation and Surface Tessellation

Description

Compute convex hull of intersection of two sets of points

Usage

 1 2 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.

David Sterratt

Examples

 1 2 3 4 5 6 7 # 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)

Example output

Volume of 1st convex hull: 1
Volume of 2nd convex hull: 1
Volume of intersection convex hull: 0.125

geometry documentation built on March 26, 2020, 7:47 p.m.