| MATLAB Function Reference | ![]() |
N-dimensional Delaunay tessellation
Syntax
Description
T = delaunayn(X)
computes a set of simplices such that no data points of X are contained in any circumspheres of the simplices. The set of simplices forms the Delaunay tessellation. X is an m-by-n array representing m points in n-dimensional space. T is a numt-by-(n+1) array where each row contains the indices into X of the vertices of the corresponding simplex.
T = delaunayn(X, options) specifies a cell array of strings options to be used as options in Qhull. The default options are:
{'Qt','Qbb','Qc'} for 2- and 3-dimensional input
{'Qt','Qbb','Qc','Qx'} for 4 and higher-dimensional input
If options is [], the default options used. If options is {''}, no options are used, not even the default. For more information on Qhull and its options, see http://www.qhull.org.
Visualization
Plotting the output of delaunayn depends of the value of n:
n = 2, use triplot, trisurf, or trimesh as you would for delaunay.
n = 3, use tetramesh as you would for delaunay3.
For more control over the color of the facets, use patch to plot the output. For an example, see Tessellation and Interpolation of Scattered Data in Higher Dimensions in the MATLAB documentation.
Examples
Example 1. This example generates an n-dimensional Delaunay tessellation, where n = 3.
d = [-1 1]; [x,y,z] = meshgrid(d,d,d); % A cube x = [x(:);0]; y = [y(:);0]; z = [z(:);0]; % [x,y,z] are corners of a cube plus the center. X = [x(:) y(:) z(:)]; Tes = delaunayn(X) Tes =9 1 5 63 9 1 52 9 1 62 3 9 42 3 9 17 9 5 67 3 9 58 7 9 68 2 9 68 2 9 48 3 9 48 7 3 9
You can use tetramesh to visualize the tetrahedrons that form the corresponding simplex. camorbit rotates the camera position to provide a meaningful view of the figure.
Example 2. The following example illustrates the options input for delaunayn.
X = [-0.5 -0.5 -0.5;... -0.5 -0.5 0.5;... -0.5 0.5 -0.5;... -0.5 0.5 0.5;... 0.5 -0.5 -0.5;... 0.5 -0.5 0.5;... 0.5 0.5 -0.5;... 0.5 0.5 0.5];
returns the following error message.
??? qhull input error: can not scale last coordinate. Input is cocircular or cospherical. Use option 'Qz' to add a point at infinity.
This suggests that you add 'Qz' to the default options.
To visualize this answer you can use the tetramesh function:
Algorithm
delaunayn is based on Qhull [2]. For information about Qhull, see http://www.qhull.org/. For copyright information, see http://www.qhull.org/COPYING.txt.
See Also
convhulln, delaunayn, delaunay3, tetramesh, voronoin
Reference
[1] Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa, "The Quickhull Algorithm for Convex Hulls," ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p. 469-483. Available in HTML format at http://www.acm.org/ pubs/citations/journals/toms/1996-22-4/p469-barber/ and in PostScript format at ftp://geom.umn.edu/pub/software/qhull-96.ps.
[2] National Science and Technology Research Center for Computation and Visualization of Geometric Structures (The Geometry Center), University of Minnesota. 1993.
| delaunay3 | delete | ![]() |
© 1994-2005 The MathWorks, Inc.