629 lines
27 KiB
HTML
629 lines
27 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||
|
<html>
|
||
|
|
||
|
<head>
|
||
|
<title>qdelaunay -- Delaunay triangulation</title>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<!-- Navigation links -->
|
||
|
<a name="TOP"><b>Up</b></a><b>:</b>
|
||
|
<a href="http://www.qhull.org">Home page</a> for Qhull<br>
|
||
|
<b>Up:</b> <a href="index.htm#TOC">Qhull manual</a>: Table of Contents<br>
|
||
|
<b>To:</b> <a href="qh-quick.htm#programs">Programs</a>
|
||
|
• <a href="qh-quick.htm#options">Options</a>
|
||
|
• <a href="qh-opto.htm#output">Output</a>
|
||
|
• <a href="qh-optf.htm#format">Formats</a>
|
||
|
• <a href="qh-optg.htm#geomview">Geomview</a>
|
||
|
• <a href="qh-optp.htm#print">Print</a>
|
||
|
• <a href="qh-optq.htm#qhull">Qhull</a>
|
||
|
• <a href="qh-optc.htm#prec">Precision</a>
|
||
|
• <a href="qh-optt.htm#trace">Trace</a>
|
||
|
• <a href="../src/libqhull_r/index.htm">Functions</a><br>
|
||
|
<b>To:</b> <a href="#synopsis">sy</a>nopsis
|
||
|
• <a href="#input">in</a>put • <a href="#outputs">ou</a>tputs
|
||
|
• <a href="#controls">co</a>ntrols • <a href="#graphics">gr</a>aphics
|
||
|
• <a href="#notes">no</a>tes • <a href="#conventions">co</a>nventions
|
||
|
• <a href="#options">op</a>tions
|
||
|
|
||
|
<hr>
|
||
|
<!-- Main text of document -->
|
||
|
<h1><a
|
||
|
href="http://www.geom.uiuc.edu/graphics/pix/Special_Topics/Computational_Geometry/delaunay.html"><img
|
||
|
src="qh--dt.gif" alt="[delaunay]" align="middle" width="100"
|
||
|
height="100"></a>qdelaunay -- Delaunay triangulation</h1>
|
||
|
|
||
|
<p>The Delaunay triangulation is the triangulation with empty
|
||
|
circumspheres. It has many useful properties and applications.
|
||
|
See the survey article by Aurenhammer [<a
|
||
|
href="index.htm#aure91">'91</a>] and the detailed introduction
|
||
|
by O'Rourke [<a href="index.htm#orou94">'94</a>]. </p>
|
||
|
|
||
|
<blockquote>
|
||
|
<dl>
|
||
|
<dt><b>Example:</b> rbox r y c G0.1 D2 | qdelaunay <a href="qh-opto.htm#s">s</a>
|
||
|
<a href="qh-optf.htm#Fv">Fv</a> <a href="qh-optt.htm#TO">TO
|
||
|
result</a></dt>
|
||
|
<dd>Compute the 2-d Delaunay triangulation of a triangle and
|
||
|
a small square.
|
||
|
Write a summary to the console and unoriented regions to 'result'.
|
||
|
Merge regions for cocircular input sites (i.e., the
|
||
|
square).</dd>
|
||
|
<dt> </dt>
|
||
|
<dt><b>Example:</b> rbox r y c G0.1 D2 | qdelaunay <a href="qh-opto.htm#s">s</a>
|
||
|
<a href="qh-optf.htm#Fv">Fv</a> <a href="qh-optq.htm#Qt">Qt</a></dt>
|
||
|
<dd>Compute the 2-d Delaunay triangulation of a triangle and
|
||
|
a small square. Write a summary and unoriented
|
||
|
regions to the console. Produce triangulated output.</dd>
|
||
|
<dt> </dt>
|
||
|
<dt><b>Example:</b> rbox 10 D2 | qdelaunay <a
|
||
|
href="qh-optq.htm#QJn">QJ</a> <a href="qh-opto.htm#s">s</a>
|
||
|
<a href="qh-opto.htm#i">i</a> <a href="qh-optt.htm#TO">TO
|
||
|
result</a></dt>
|
||
|
<dd>Compute the 2-d Delaunay triangulation of 10 random
|
||
|
points. Joggle the input to guarantee triangular output.
|
||
|
Write a summary to the console and the regions to
|
||
|
'result'.</dd>
|
||
|
</dl>
|
||
|
</blockquote>
|
||
|
|
||
|
<p>Qhull computes the Delaunay triangulation by computing a
|
||
|
convex hull. It lifts the input sites to a paraboloid by adding
|
||
|
the sum of the squares of the coordinates. It scales the height
|
||
|
of the paraboloid to improve numeric precision ('<a href=qh-optq.htm#Qbb>Qbb</a>').
|
||
|
It computes the convex
|
||
|
hull of the lifted sites, and projects the lower convex hull to
|
||
|
the input.
|
||
|
|
||
|
<p>Each region of the Delaunay triangulation
|
||
|
corresponds to a facet of the lower half of the convex hull.
|
||
|
Facets of the upper half of the convex hull correspond to the <a
|
||
|
href="qdelau_f.htm">furthest-site Delaunay triangulation</a>.
|
||
|
See the examples, <a href="qh-eg.htm#delaunay">Delaunay and
|
||
|
Voronoi diagrams</a>.</p>
|
||
|
|
||
|
<p>See <a href="http://www.qhull.org/html/qh-faq.htm#TOC">Qhull FAQ</a> - Delaunay and
|
||
|
Voronoi diagram questions.</p>
|
||
|
|
||
|
<p>By default, qdelaunay merges cocircular and cospherical regions.
|
||
|
For example, the Delaunay triangulation of a square inside a diamond
|
||
|
('rbox D2 c d G4 | qdelaunay') contains one region for the square.
|
||
|
|
||
|
<p>Use option '<a href="qh-optq.htm#Qz">Qz</a>' if the input is circular, cospherical, or
|
||
|
nearly so. It improves precision by adding a point "at infinity," above the corresponding paraboloid.
|
||
|
|
||
|
<p>If you use '<a href="qh-optq.htm#Qt">Qt</a>' (triangulated output),
|
||
|
all Delaunay regions will be simplicial (e.g., triangles in 2-d).
|
||
|
Some regions may be
|
||
|
degenerate and have zero area. Triangulated output identifies coincident
|
||
|
points.
|
||
|
|
||
|
<p>If you use '<a href="qh-optq.htm#QJn">QJ</a>' (joggled input), all Delaunay regions
|
||
|
will be simplicial (e.g., triangles in 2-d). Coincident points will
|
||
|
create small regions since the points are joggled apart. Joggled input
|
||
|
is less accurate than triangulated output ('Qt'). See <a
|
||
|
href="qh-impre.htm#joggle">Merged facets or joggled input</a>. </p>
|
||
|
|
||
|
<p>The output for 3-d Delaunay triangulations may be confusing if the
|
||
|
input contains cospherical data. See the FAQ item
|
||
|
<a href=qh-faq.htm#extra>Why
|
||
|
are there extra points in a 4-d or higher convex hull?</a>
|
||
|
Avoid these problems with triangulated output ('<a href="qh-optq.htm#Qt">Qt</a>') or
|
||
|
joggled input ('<a href="qh-optq.htm#QJn">QJ</a>').
|
||
|
</p>
|
||
|
|
||
|
<p>The 'qdelaunay' program is equivalent to
|
||
|
'<a href=qhull.htm#outputs>qhull d</a> <a href=qh-optq.htm#Qbb>Qbb</a>' in 2-d to 3-d, and
|
||
|
'<a href=qhull.htm#outputs>qhull d</a> <a href=qh-optq.htm#Qbb>Qbb</a> <a href=qh-optq.htm#Qx>Qx</a>'
|
||
|
in 4-d and higher. It disables the following Qhull
|
||
|
<a href=qh-quick.htm#options>options</a>: <i>d n v H U Qb QB Qc Qf Qg Qi
|
||
|
Qm Qr QR Qv Qx TR E V FC Fi Fo Fp Ft FV Q0,etc</i>.
|
||
|
|
||
|
|
||
|
<p><b>Copyright © 1995-2015 C.B. Barber</b></p>
|
||
|
|
||
|
<hr>
|
||
|
|
||
|
<h3><a href="#TOP">»</a><a name="synopsis">qdelaunay synopsis</a></h3>
|
||
|
|
||
|
<pre>
|
||
|
qdelaunay- compute the Delaunay triangulation.
|
||
|
input (stdin): dimension, number of points, point coordinates
|
||
|
comments start with a non-numeric character
|
||
|
|
||
|
options (qdelaun.htm):
|
||
|
Qt - triangulated output
|
||
|
QJ - joggle input instead of merging facets
|
||
|
Qu - furthest-site Delaunay triangulation
|
||
|
Tv - verify result: structure, convexity, and in-circle test
|
||
|
. - concise list of all options
|
||
|
- - one-line description of all options
|
||
|
|
||
|
output options (subset):
|
||
|
s - summary of results (default)
|
||
|
i - vertices incident to each Delaunay region
|
||
|
Fx - extreme points (vertices of the convex hull)
|
||
|
o - OFF format (shows the points lifted to a paraboloid)
|
||
|
G - Geomview output (2-d and 3-d points lifted to a paraboloid)
|
||
|
m - Mathematica output (2-d inputs lifted to a paraboloid)
|
||
|
QVn - print Delaunay regions that include point n, -n if not
|
||
|
TO file- output results to file, may be enclosed in single quotes
|
||
|
|
||
|
examples:
|
||
|
rbox c P0 D2 | qdelaunay s o rbox c P0 D2 | qdelaunay i
|
||
|
rbox c P0 D3 | qdelaunay Fv Qt rbox c P0 D2 | qdelaunay s Qu Fv
|
||
|
rbox c G1 d D2 | qdelaunay s i rbox c G1 d D2 | qdelaunay s i Qt
|
||
|
rbox M3,4 z 100 D2 | qdelaunay s rbox M3,4 z 100 D2 | qdelaunay s Qt
|
||
|
</pre>
|
||
|
|
||
|
|
||
|
<h3><a href="#TOP">»</a><a name="input">qdelaunay
|
||
|
input</a></h3>
|
||
|
|
||
|
<blockquote>
|
||
|
<p>The input data on <tt>stdin</tt> consists of:</p>
|
||
|
<ul>
|
||
|
<li>dimension
|
||
|
<li>number of points</li>
|
||
|
<li>point coordinates</li>
|
||
|
</ul>
|
||
|
|
||
|
<p>Use I/O redirection (e.g., qdelaunay < data.txt), a pipe (e.g., rbox 10 | qdelaunay),
|
||
|
or the '<a href=qh-optt.htm#TI>TI</a>' option (e.g., qdelaunay TI data.txt).
|
||
|
|
||
|
<p>For example, this is four cocircular points inside a square. Its Delaunay
|
||
|
triangulation contains 8 triangles and one four-sided
|
||
|
figure.
|
||
|
<p>
|
||
|
<blockquote>
|
||
|
<tt>rbox s 4 W0 c G1 D2 > data</tt>
|
||
|
<blockquote><pre>
|
||
|
2 RBOX s 4 W0 c D2
|
||
|
8
|
||
|
-0.4941988586954018 -0.07594397977563715
|
||
|
-0.06448037284989526 0.4958248496365813
|
||
|
0.4911154367094632 0.09383830681375946
|
||
|
-0.348353580869097 -0.3586778257652367
|
||
|
-1 -1
|
||
|
-1 1
|
||
|
1 -1
|
||
|
1 1
|
||
|
</pre></blockquote>
|
||
|
|
||
|
<p><tt>qdelaunay s i < data</tt>
|
||
|
<blockquote><pre>
|
||
|
|
||
|
Delaunay triangulation by the convex hull of 8 points in 3-d
|
||
|
|
||
|
Number of input sites: 8
|
||
|
Number of Delaunay regions: 9
|
||
|
Number of non-simplicial Delaunay regions: 1
|
||
|
|
||
|
Statistics for: RBOX s 4 W0 c D2 | QDELAUNAY s i
|
||
|
|
||
|
Number of points processed: 8
|
||
|
Number of hyperplanes created: 18
|
||
|
Number of facets in hull: 10
|
||
|
Number of distance tests for qhull: 33
|
||
|
Number of merged facets: 2
|
||
|
Number of distance tests for merging: 102
|
||
|
CPU seconds to compute hull (after input): 0.028
|
||
|
|
||
|
9
|
||
|
1 7 5
|
||
|
6 3 4
|
||
|
2 3 6
|
||
|
7 2 6
|
||
|
2 7 1
|
||
|
0 5 4
|
||
|
3 0 4
|
||
|
0 1 5
|
||
|
1 0 3 2
|
||
|
</pre></blockquote>
|
||
|
</blockquote>
|
||
|
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="outputs">qdelaunay
|
||
|
outputs</a></h3>
|
||
|
<blockquote>
|
||
|
|
||
|
<p>These options control the output of Delaunay triangulations:</p>
|
||
|
<blockquote>
|
||
|
|
||
|
<dl compact>
|
||
|
<dd><b>Delaunay regions</b></dd>
|
||
|
<dt><a href="qh-opto.htm#i">i</a></dt>
|
||
|
<dd>list input sites for each Delaunay region. The first line is the number of regions. The
|
||
|
remaining lines list the input sites for each region. The regions are
|
||
|
oriented. In 3-d and
|
||
|
higher, report cospherical sites by adding extra points. Use triangulated
|
||
|
output ('<a href="qh-optq.htm#Qt">Qt</a>') to avoid non-simpicial regions. For the circle-in-square example,
|
||
|
eight Delaunay regions are triangular and the ninth has four input sites.</dd>
|
||
|
<dt><a href="qh-optf.htm#Fv">Fv</a></dt>
|
||
|
<dd>list input sites for each Delaunay region. The first line is the number of regions.
|
||
|
Each remaining line starts with the number of input sites. The regions
|
||
|
are unoriented. For the circle-in-square example,
|
||
|
eight Delaunay regions are triangular and the ninth has four input sites.</dd>
|
||
|
<dt><a href="qh-optf.htm#Fn">Fn</a></dt>
|
||
|
<dd>list neighboring regions for each Delaunay region. The first line is the
|
||
|
number of regions. Each remaining line starts with the number of
|
||
|
neighboring regions. Negative indices (e.g., <em>-1</em>) indicate regions
|
||
|
outside of the Delaunay triangulation.
|
||
|
For the circle-in-square example, the four regions on the square are neighbors to
|
||
|
the region-at-infinity.</dd>
|
||
|
<dt><a href="qh-optf.htm#FN">FN</a></dt>
|
||
|
<dd>list the Delaunay regions for each input site. The first line is the
|
||
|
total number of input sites. Each remaining line starts with the number of
|
||
|
Delaunay regions. Negative indices (e.g., <em>-1</em>) indicate regions
|
||
|
outside of the Delaunay triangulation.
|
||
|
For the circle-in-square example, each point on the circle belongs to four
|
||
|
Delaunay regions. Use '<a href="qh-optq.htm#Qc">Qc</a> FN'
|
||
|
to include coincident input sites and deleted vertices. </dd>
|
||
|
<dt><a href="qh-optf.htm#Fa">Fa</a></dt>
|
||
|
<dd>print area for each Delaunay region. The first line is the number of regions.
|
||
|
The areas follow, one line per region. For the circle-in-square example, the
|
||
|
cocircular region has area 0.4. </dd>
|
||
|
<dt> </dt>
|
||
|
<dt> </dt>
|
||
|
<dd><b>Input sites</b></dd>
|
||
|
<dt><a href="qh-optf.htm#Fc">Fc</a></dt>
|
||
|
<dd>list coincident input sites for each Delaunay region.
|
||
|
The first line is the number of regions. The remaining lines start with
|
||
|
the number of coincident sites and deleted vertices. Deleted vertices
|
||
|
indicate highly degenerate input (see'<a href="qh-optf.htm#Fs">Fs</a>').
|
||
|
A coincident site is assigned to one Delaunay
|
||
|
region. Do not use '<a href="qh-optq.htm#QJn">QJ</a>' with 'Fc'; the joggle will separate
|
||
|
coincident sites.</dd>
|
||
|
<dt><a href="qh-optf.htm#FP">FP</a></dt>
|
||
|
<dd>print coincident input sites with distance to
|
||
|
nearest site (i.e., vertex). The first line is the
|
||
|
number of coincident sites. Each remaining line starts with the point ID of
|
||
|
an input site, followed by the point ID of a coincident point, its region, and distance.
|
||
|
Includes deleted vertices which
|
||
|
indicate highly degenerate input (see'<a href="qh-optf.htm#Fs">Fs</a>').
|
||
|
Do not use '<a href="qh-optq.htm#QJn">QJ</a>' with 'FP'; the joggle will separate
|
||
|
coincident sites.</dd>
|
||
|
<dt><a href="qh-optf.htm#Fx">Fx</a></dt>
|
||
|
<dd>list extreme points of the input sites. These points are on the
|
||
|
boundary of the convex hull. The first line is the number of
|
||
|
extreme points. Each point is listed, one per line. The circle-in-square example
|
||
|
has four extreme points.</dd>
|
||
|
<dt> </dt>
|
||
|
<dt> </dt>
|
||
|
<dd><b>General</b></dd>
|
||
|
<dt><a href="qh-optf.htm#FA">FA</a></dt>
|
||
|
<dd>compute total area for '<a href="qh-opto.htm#s">s</a>'
|
||
|
and '<a href="qh-optf.htm#FS">FS</a>'</dd>
|
||
|
<dt><a href="qh-opto.htm#o">o</a></dt>
|
||
|
<dd>print lower facets of the corresponding convex hull (a
|
||
|
paraboloid)</dd>
|
||
|
<dt><a href="qh-opto.htm#m">m</a></dt>
|
||
|
<dd>Mathematica output for the lower facets of the paraboloid (2-d triangulations).</dd>
|
||
|
<dt><a href="qh-optf.htm#FM">FM</a></dt>
|
||
|
<dd>Maple output for the lower facets of the paraboloid (2-d triangulations).</dd>
|
||
|
<dt><a href="qh-optg.htm#G">G</a></dt>
|
||
|
<dd>Geomview output for the paraboloid (2-d or 3-d triangulations).</dd>
|
||
|
<dt><a href="qh-opto.htm#s">s</a></dt>
|
||
|
<dd>print summary for the Delaunay triangulation. Use '<a
|
||
|
href="qh-optf.htm#Fs">Fs</a>' and '<a
|
||
|
href="qh-optf.htm#FS">FS</a>' for numeric data.</dd>
|
||
|
</dl>
|
||
|
</blockquote>
|
||
|
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="controls">qdelaunay
|
||
|
controls</a></h3>
|
||
|
<blockquote>
|
||
|
|
||
|
<p>These options provide additional control:</p>
|
||
|
<blockquote>
|
||
|
|
||
|
<dl compact>
|
||
|
<dt><a href="qh-optq.htm#Qt">Qt</a></dt>
|
||
|
<dd>triangulated output. Qhull triangulates non-simplicial facets. It may produce
|
||
|
degenerate facets of zero area.</dd>
|
||
|
<dt><a href="qh-optq.htm#QJn">QJ</a></dt>
|
||
|
<dd>joggle the input to avoid cospherical and coincident
|
||
|
sites. It is less accurate than triangulated output ('Qt').</dd>
|
||
|
<dt><a href="qh-optq.htm#Qu">Qu</a></dt>
|
||
|
<dd>compute the <a href="qdelau_f.htm">furthest-site Delaunay triangulation</a>.</dd>
|
||
|
<dt><a href="qh-optq.htm#Qz">Qz</a></dt>
|
||
|
<dd>add a point above the paraboloid to reduce precision
|
||
|
errors. Use it for nearly cocircular/cospherical input
|
||
|
(e.g., 'rbox c | qdelaunay Qz'). The point is printed for
|
||
|
options '<a href="qh-optf.htm#Ft">Ft</a>' and '<a
|
||
|
href="qh-opto.htm#o">o</a>'.</dd>
|
||
|
<dt><a href="qh-optq.htm#QVn">QVn</a></dt>
|
||
|
<dd>select facets adjacent to input site <em>n</em> (marked
|
||
|
'good').</dd>
|
||
|
<dt><a href="qh-optt.htm#Tv">Tv</a></dt>
|
||
|
<dd>verify result.</dd>
|
||
|
<dt><a href="qh-optt.htm#TO">TI file</a></dt>
|
||
|
<dd>input data from file. The filename may not use spaces or quotes.</dd>
|
||
|
<dt><a href="qh-optt.htm#TO">TO file</a></dt>
|
||
|
<dd>output results to file. Use single quotes if the filename
|
||
|
contains spaces (e.g., <tt>TO 'file with spaces.txt'</tt></dd>
|
||
|
<dt><a href="qh-optt.htm#TFn">TFn</a></dt>
|
||
|
<dd>report progress after constructing <em>n</em> facets</dd>
|
||
|
<dt><a href="qh-optp.htm#PDk">PDk:1</a></dt>
|
||
|
<dd>include upper and lower facets in the output. Set <em>k</em>
|
||
|
to the last dimension (e.g., 'PD2:1' for 2-d inputs). </dd>
|
||
|
<dt><a href="qh-opto.htm#f">f</a></dt>
|
||
|
<dd>facet dump. Print the data structure for each facet (i.e., Delaunay region).</dd>
|
||
|
</dl>
|
||
|
</blockquote>
|
||
|
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="graphics">qdelaunay
|
||
|
graphics</a></h3>
|
||
|
<blockquote>
|
||
|
|
||
|
<p>For 2-d and 3-d Delaunay triangulations, Geomview ('qdelaunay <a
|
||
|
href="qh-optg.htm#G">G</a>') displays the corresponding convex
|
||
|
hull (a paraboloid). </p>
|
||
|
|
||
|
<p>To view a 2-d Delaunay triangulation, use 'qdelaunay <a
|
||
|
href="qh-optg.htm#GDn">GrD2</a>' to drop the last dimension. This
|
||
|
is the same as viewing the hull without perspective (see
|
||
|
Geomview's 'cameras' menu). </p>
|
||
|
|
||
|
<p>To view a 3-d Delaunay triangulation, use 'qdelaunay <a
|
||
|
href="qh-optg.htm#GDn">GrD3</a>' to drop the last dimension. You
|
||
|
may see extra edges. These are interior edges that Geomview moves
|
||
|
towards the viewer (see 'lines closer' in Geomview's camera
|
||
|
options). Use option '<a href="qh-optg.htm#Gt">Gt</a>' to make
|
||
|
the outer ridges transparent in 3-d. See <a
|
||
|
href="qh-eg.htm#delaunay">Delaunay and Voronoi examples</a>.</p>
|
||
|
|
||
|
<p>For 2-d Delaunay triangulations, Mathematica ('<a
|
||
|
href="qh-opto.htm#m">m</a>') and Maple ('<a
|
||
|
href="qh-optf.htm#FM">FM</a>') output displays the lower facets of the corresponding convex
|
||
|
hull (a paraboloid). </p>
|
||
|
|
||
|
<p>For 2-d, furthest-site Delaunay triangulations, Maple and Mathematica output ('<a
|
||
|
href="qh-optq.htm#Qu">Qu</a> <a
|
||
|
href="qh-opto.htm#m">m</a>') displays the upper facets of the corresponding convex
|
||
|
hull (a paraboloid). </p>
|
||
|
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="notes">qdelaunay
|
||
|
notes</a></h3>
|
||
|
<blockquote>
|
||
|
|
||
|
<p>You can simplify the Delaunay triangulation by enclosing the input
|
||
|
sites in a large square or cube. This is particularly recommended
|
||
|
for cocircular or cospherical input data.
|
||
|
|
||
|
<p>A non-simplicial Delaunay region indicates nearly cocircular or
|
||
|
cospherical input sites. To avoid non-simplicial regions either triangulate
|
||
|
the output ('<a href="qh-optq.htm#Qt">Qt</a>') or joggle
|
||
|
the input ('<a href="qh-optq.htm#QJn">QJ</a>'). Triangulated output
|
||
|
is more accurate than joggled input. Alternatively, use an <a
|
||
|
href="qh-impre.htm#exact">exact arithmetic code</a>.</p>
|
||
|
|
||
|
<p>Delaunay triangulations do not include facets that are
|
||
|
coplanar with the convex hull of the input sites. A facet is
|
||
|
coplanar if the last coefficient of its normal is
|
||
|
nearly zero (see <a href="../src/libqhull/user.h#ZEROdelaunay">qh_ZEROdelaunay</a>).
|
||
|
|
||
|
<p>See <a href=qh-impre.htm#delaunay>Imprecision issues :: Delaunay triangulations</a>
|
||
|
for a discussion of precision issues. Deleted vertices indicate
|
||
|
highly degenerate input. They are listed in the summary output and
|
||
|
option '<a href="qh-optf.htm#Fs">Fs</a>'.</p>
|
||
|
|
||
|
<p>To compute the Delaunay triangulation of points on a sphere,
|
||
|
compute their convex hull. If the sphere is the unit sphere at
|
||
|
the origin, the facet normals are the Voronoi vertices of the
|
||
|
input. The points may be restricted to a hemisphere. [S. Fortune]
|
||
|
</p>
|
||
|
|
||
|
<p>The 3-d Delaunay triangulation of regular points on a half
|
||
|
spiral (e.g., 'rbox 100 l | qdelaunay') has quadratic size, while the Delaunay triangulation
|
||
|
of random 3-d points is
|
||
|
approximately linear for reasonably sized point sets.
|
||
|
|
||
|
<p>With the <a href="qh-code.htm#library">Qhull library</a>, you
|
||
|
can use <tt>qh_findbestfacet</tt> in <tt>poly2.c</tt> to locate the facet
|
||
|
that contains a point. You should first lift the point to the
|
||
|
paraboloid (i.e., the last coordinate is the sum of the squares
|
||
|
of the point's coordinates -- <tt>qh_setdelaunay</tt>). Do not use options
|
||
|
'<a href="qh-optq.htm#Qbb">Qbb</a>', '<a href="qh-optq.htm#QbB">QbB</a>',
|
||
|
'<a href="qh-optq.htm#Qbk">Qbk:n</a>', or '<a
|
||
|
href="qh-optq.htm#QBk">QBk:n</a>' since these scale the last
|
||
|
coordinate. </p>
|
||
|
|
||
|
<p>If a point is interior to the convex hull of the input set, it
|
||
|
is interior to the adjacent vertices of the Delaunay
|
||
|
triangulation. This is demonstrated by the following pipe for
|
||
|
point 0:
|
||
|
|
||
|
<pre>
|
||
|
qdelaunay <data s FQ QV0 p | qconvex s Qb3:0B3:0 p
|
||
|
</pre>
|
||
|
|
||
|
<p>The first call to qdelaunay returns the neighboring points of
|
||
|
point 0 in the Delaunay triangulation. The second call to qconvex
|
||
|
returns the vertices of the convex hull of these points (after
|
||
|
dropping the lifted coordinate). If point 0 is interior to the
|
||
|
original point set, it is interior to the reduced point set. </p>
|
||
|
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="conventions">qdelaunay conventions</a></h3>
|
||
|
<blockquote>
|
||
|
|
||
|
<p>The following terminology is used for Delaunay triangulations
|
||
|
in Qhull for dimension <i>d</i>. The underlying structure is the
|
||
|
lower facets of a convex hull in dimension <i>d+1</i>. For
|
||
|
further information, see <a href="index.htm#structure">data
|
||
|
structures</a> and <a href="qconvex.htm#conventions">convex hull
|
||
|
conventions</a>.</p>
|
||
|
<blockquote>
|
||
|
<ul>
|
||
|
<li><em>input site</em> - a point in the input (one dimension
|
||
|
lower than a point on the convex hull)</li>
|
||
|
<li><em>point</em> - a point has <i>d+1</i> coordinates. The
|
||
|
last coordinate is the sum of the squares of the input
|
||
|
site's coordinates</li>
|
||
|
<li><em>coplanar point</em> - a <em>coincident</em>
|
||
|
input site or a deleted vertex. Deleted vertices
|
||
|
indicate highly degenerate input.</li>
|
||
|
<li><em>vertex</em> - a point on the paraboloid. It
|
||
|
corresponds to a unique input site. </li>
|
||
|
<li><em>point-at-infinity</em> - a point added above the
|
||
|
paraboloid by option '<a href="qh-optq.htm#Qz">Qz</a>'</li>
|
||
|
<li><em>lower facet</em> - a facet corresponding to a
|
||
|
Delaunay region. The last coefficient of its normal is
|
||
|
clearly negative.</li>
|
||
|
<li><em>upper facet</em> - a facet corresponding to a
|
||
|
furthest-site Delaunay region. The last coefficient of
|
||
|
its normal is clearly positive. </li>
|
||
|
<li><em>Delaunay region</em> - a
|
||
|
lower facet projected to the input sites</li>
|
||
|
<li><em>upper Delaunay region</em> - an upper facet projected
|
||
|
to the input sites</li>
|
||
|
<li><em>non-simplicial facet</em> - more than <em>d</em>
|
||
|
input sites are cocircular or cospherical</li>
|
||
|
<li><em>good facet</em> - a Delaunay region with optional
|
||
|
restrictions by '<a href="qh-optq.htm#QVn">QVn</a>', etc.</li>
|
||
|
</ul>
|
||
|
</blockquote>
|
||
|
</blockquote>
|
||
|
<h3><a href="#TOP">»</a><a name="options">qdelaunay options</a></h3>
|
||
|
|
||
|
<pre>
|
||
|
qdelaunay- compute the Delaunay triangulation
|
||
|
http://www.qhull.org
|
||
|
|
||
|
input (stdin):
|
||
|
first lines: dimension and number of points (or vice-versa).
|
||
|
other lines: point coordinates, best if one point per line
|
||
|
comments: start with a non-numeric character
|
||
|
|
||
|
options:
|
||
|
Qt - triangulated output
|
||
|
QJ - joggle input instead of merging facets
|
||
|
Qu - compute furthest-site Delaunay triangulation
|
||
|
|
||
|
Qhull control options:
|
||
|
QJn - randomly joggle input in range [-n,n]
|
||
|
Qs - search all points for the initial simplex
|
||
|
Qz - add point-at-infinity to Delaunay triangulation
|
||
|
QGn - print Delaunay region if visible from point n, -n if not
|
||
|
QVn - print Delaunay regions that include point n, -n if not
|
||
|
|
||
|
Trace options:
|
||
|
T4 - trace at level n, 4=all, 5=mem/gauss, -1= events
|
||
|
Tc - check frequently during execution
|
||
|
Ts - print statistics
|
||
|
Tv - verify result: structure, convexity, and in-circle test
|
||
|
Tz - send all output to stdout
|
||
|
TFn - report summary when n or more facets created
|
||
|
TI file - input data from file, no spaces or single quotes
|
||
|
TO file - output results to file, may be enclosed in single quotes
|
||
|
TPn - turn on tracing when point n added to hull
|
||
|
TMn - turn on tracing at merge n
|
||
|
TWn - trace merge facets when width > n
|
||
|
TVn - stop qhull after adding point n, -n for before (see TCn)
|
||
|
TCn - stop qhull after building cone for point n (see TVn)
|
||
|
|
||
|
Precision options:
|
||
|
Cn - radius of centrum (roundoff added). Merge facets if non-convex
|
||
|
An - cosine of maximum angle. Merge facets if cosine > n or non-convex
|
||
|
C-0 roundoff, A-0.99/C-0.01 pre-merge, A0.99/C0.01 post-merge
|
||
|
Rn - randomly perturb computations by a factor of [1-n,1+n]
|
||
|
Wn - min facet width for outside point (before roundoff)
|
||
|
|
||
|
Output formats (may be combined; if none, produces a summary to stdout):
|
||
|
f - facet dump
|
||
|
G - Geomview output (see below)
|
||
|
i - vertices incident to each Delaunay region
|
||
|
m - Mathematica output (2-d only, lifted to a paraboloid)
|
||
|
o - OFF format (dim, points, and facets as a paraboloid)
|
||
|
p - point coordinates (lifted to a paraboloid)
|
||
|
s - summary (stderr)
|
||
|
|
||
|
More formats:
|
||
|
Fa - area for each Delaunay region
|
||
|
FA - compute total area for option 's'
|
||
|
Fc - count plus coincident points for each Delaunay region
|
||
|
Fd - use cdd format for input (homogeneous with offset first)
|
||
|
FD - use cdd format for numeric output (offset first)
|
||
|
FF - facet dump without ridges
|
||
|
FI - ID of each Delaunay region
|
||
|
Fm - merge count for each Delaunay region (511 max)
|
||
|
FM - Maple output (2-d only, lifted to a paraboloid)
|
||
|
Fn - count plus neighboring region for each Delaunay region
|
||
|
FN - count plus neighboring region for each point
|
||
|
FO - options and precision constants
|
||
|
FP - nearest point and distance for each coincident point
|
||
|
FQ - command used for qdelaunay
|
||
|
Fs - summary: #int (8), dimension, #points, tot vertices, tot facets,
|
||
|
for output: #vertices, #Delaunay regions,
|
||
|
#coincident points, #non-simplicial regions
|
||
|
#real (2), max outer plane, min vertex
|
||
|
FS - sizes: #int (0)
|
||
|
#real (2), tot area, 0
|
||
|
Fv - count plus vertices for each Delaunay region
|
||
|
Fx - extreme points of Delaunay triangulation (on convex hull)
|
||
|
|
||
|
Geomview options (2-d and 3-d)
|
||
|
Ga - all points as dots
|
||
|
Gp - coplanar points and vertices as radii
|
||
|
Gv - vertices as spheres
|
||
|
Gi - inner planes only
|
||
|
Gn - no planes
|
||
|
Go - outer planes only
|
||
|
Gc - centrums
|
||
|
Gh - hyperplane intersections
|
||
|
Gr - ridges
|
||
|
GDn - drop dimension n in 3-d and 4-d output
|
||
|
Gt - transparent outer ridges to view 3-d Delaunay
|
||
|
|
||
|
Print options:
|
||
|
PAn - keep n largest Delaunay regions by area
|
||
|
Pdk:n - drop facet if normal[k] <= n (default 0.0)
|
||
|
PDk:n - drop facet if normal[k] >= n
|
||
|
Pg - print good Delaunay regions (needs 'QGn' or 'QVn')
|
||
|
PFn - keep Delaunay regions whose area is at least n
|
||
|
PG - print neighbors of good regions (needs 'QGn' or 'QVn')
|
||
|
PMn - keep n Delaunay regions with most merges
|
||
|
Po - force output. If error, output neighborhood of facet
|
||
|
Pp - do not report precision problems
|
||
|
|
||
|
. - list of all options
|
||
|
- - one line descriptions of all options
|
||
|
</pre>
|
||
|
|
||
|
<!-- Navigation links -->
|
||
|
<hr>
|
||
|
|
||
|
<p><b>Up:</b> <a href="http://www.qhull.org">Home page</a> for Qhull<br>
|
||
|
<b>Up:</b> <a href="index.htm#TOC">Qhull manual</a>: Table of Contents<br>
|
||
|
<b>To:</b> <a href="qh-quick.htm#programs">Programs</a>
|
||
|
• <a href="qh-quick.htm#options">Options</a>
|
||
|
• <a href="qh-opto.htm#output">Output</a>
|
||
|
• <a href="qh-optf.htm#format">Formats</a>
|
||
|
• <a href="qh-optg.htm#geomview">Geomview</a>
|
||
|
• <a href="qh-optp.htm#print">Print</a>
|
||
|
• <a href="qh-optq.htm#qhull">Qhull</a>
|
||
|
• <a href="qh-optc.htm#prec">Precision</a>
|
||
|
• <a href="qh-optt.htm#trace">Trace</a>
|
||
|
• <a href="../src/libqhull_r/index.htm">Functions</a><br>
|
||
|
<b>To:</b> <a href="#synopsis">sy</a>nopsis
|
||
|
• <a href="#input">in</a>put • <a href="#outputs">ou</a>tputs
|
||
|
• <a href="#controls">co</a>ntrols • <a href="#graphics">gr</a>aphics
|
||
|
• <a href="#notes">no</a>tes • <a href="#conventions">co</a>nventions
|
||
|
• <a href="#options">op</a>tions
|
||
|
<!-- GC common information -->
|
||
|
<hr>
|
||
|
|
||
|
<p><a href="http://www.geom.uiuc.edu/"><img src="qh--geom.gif"
|
||
|
align="middle" width="40" height="40"></a><i>The Geometry Center
|
||
|
Home Page </i></p>
|
||
|
|
||
|
<p>Comments to: <a href=mailto:qhull@qhull.org>qhull@qhull.org</a>
|
||
|
</a><br>
|
||
|
Created: Sept. 25, 1995 --- <!-- hhmts start --> Last modified: see top <!-- hhmts end --> </p>
|
||
|
</body>
|
||
|
</html>
|