convhulln {geometry} | R Documentation |
Returns an index matrix to the points of simplices (“triangles”) that form the smallest convex simplicial complex of a set of input points in N-dimensional space.
convhulln(p, options = "Tv")
p |
An n -by-dim matrix.
The rows of p represent n
points in dim -dimensional space. |
options |
Optional options, see details below and Qhull documentation. |
This function interfaces the qhull library, and intends to be a port from Octave to R.
The input n
-by-dim
matrix contains n
points of dimension dim
. If a second optional argument
is given, it must be a string containing extra options for the
underlying qhull command. The options
always include
"Qt"
. (See the Qhull documentation for the available
options - refer to delaunayn.)
An m
-by-dim
index matrix of which each row defines
a dim
-dimensional “triangle”. The indices refer to the
rows in p
. If the option "FA"
is provided, then the
output is a list
with entries $hull
containing the
matrix mentioned above, and $area
and $vol
with
the area and volume of the hull described by the matrix.
This intents to be a port of the Octave's (http://www.octave.org) geometry library. The sources originals were from Kai Habel.
All console printing is sent to a file in the CWD called
“qhull_out.txt” unless another file is specified with the TO
option – see the qhull documentation. To get the usual
progress-related output specify the R-specific option "Pp Ps"
.
The option "FA"
results in the area and volume of the convex hull
to be included in the output list.
See further notes in delaunayn.
Raoul Grasman and Robert B. Gramacy bobby@statslab.cam.ac.uk
Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., “The Quickhull algorithm for convex hulls,” ACM Trans. on Mathematical Software, Dec 1996.
convex.hull
,
delaunayn
,
surf.tri
,
distmesh2d
# example delaunayn d = c(-1,1) pc = as.matrix(rbind(expand.grid(d,d,d),0)) tc = delaunayn(pc) # example tetramesh ## Not run: library(rgl) rgl.viewpoint(60) rgl.light(120,60) tetramesh(tc,pc, alpha=0.9) # render tetrahedron mesh ## End(Not run) # example convhulln # ==> see also surf.tri to avoid unwanted messages printed to the console by qhull ps = matrix(rnorm(3000),ncol=3) # generate poinst on a sphere ps = sqrt(3) * ps / drop(sqrt((ps^2) %*% rep(1,3))) ts.surf = t( convhulln(ps,"QJ") ) # see the qhull documentations for the options ## Not run: rgl.triangles(ps[ts.surf,1],ps[ts.surf,2],ps[ts.surf,3],col="blue",alpha=.2) for(i in 1:(8*360)) rgl.viewpoint(i/8) ## End(Not run)