1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/intersectn.R
\name{intersectn}
\alias{intersectn}
\title{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{
\item{ps1}{First set of points}
\item{ps2}{Second set of points}
\item{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.}
\item{return.chs}{If \code{TRUE} (default) return the convex hulls
of the first and second sets of points, as well as the convex
hull of the intersection.}
\item{options}{Options passed to \code{\link{halfspacen}}. By
default this is \code{Tv}.}
\item{fp}{Coordinates of feasible point, i.e. a point known to lie
in the hulls of \code{ps1} and \code{ps2}. The feasible point is
required for \code{\link{halfspacen}} to find the intersection.
\code{intersectn} tries to find the feasible point automatically
using the linear program in \code{\link{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}
\item{autoscale}{\emph{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: \code{ch1}, the convex
hull of the first set of points, with volumes, areas and normals
(see \code{\link{convhulln}}; \code{ch2}, the convex hull of the
first set of points, with volumes, areas and normals; \code{ps},
the intersection points of convex hulls \code{ch1} and
\code{ch2}; and \code{ch}, the convex hull of the intersection
points, with volumes, areas and normals.
}
\description{
Compute convex hull of intersection of two sets of points
}
\note{
\code{intersectn} was introduced in geometry 0.4.0, and is
still under development. It is worth checking results for
unexpected behaviour.
}
\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)
}
\seealso{
\code{\link{convhulln}}, \code{\link{halfspacen}},
\code{\link{inhulln}}, \code{\link{feasible.point}}
}
\author{
David Sterratt
}
|