Title: Delaunay Triangulation
1Delaunay Triangulation Application
- Course Presentation by
- Wei-Chao Chen
- Oct. 29, 1998
2Outline
- Applications of Delaunay Triangulation
- Data-Dependent Triangulation
- Constrained Delaunay Triangulation
- Mesh Generation using Delaunay Refinement
- 3-D Delaunay Triangulation
Rhythmes, Sonia Delaunay
3Applications
- Geoscientific Modelling
- Collect data about spatial objects and domains.
- Categorize features in soils or ocean.
- Unique triangulation, adaptive user control.
Lattuada et al. (http//www.iah.bbsrc.ac.uk/phd/gi
sruk95.html)
4Applications
- Volume visualization for 3D scalar function
- Given a set of 3D points with scalar value,
visualize the dataset, one or more level with
transparency. - Requires intensive computation power.
- Delaunay Triangulation is used to interpolate the
scalar function between given vertices (Delaunay
Interpolation) - Ray-Tracing image refinement
- Use Delaunay Triangulation, interpolate by using
convolution and integral.
5Applications
- Medical Imaging, Feature Extraction
- Input A medical image such as CT or MRI.
- Process Find vertices on the edges.
- Output The medial axis and feature surface by
combining Voronoi diagram and Delaunay
triangulation.
Robinson. (http//noodle.med.yale.edu/robinson/)
6Data-Dependent Triangulation
- For applications like height fields and terrain,
we want to have triangulation to approximate the
true surface condition. - Taking the height into account, we may get a
better triangulation than merely doing the
Delaunay Triangulation in 2-D. - Dyn et al. Minimizing the size of normal
derivative discontinuities across edges of the
triangulation will provide dramatic improvement.
7Data-Dependent Triangulation
- Quak, Schumaker Given a set of vertices in 3D,
find the triangulation that is closest to the
actual surface (assuming cubic spline fitting). - Specify an energy function and flip edge
recursively to obtain the minimal energy. - The actual surface is globally C1 across
vertices. - The vertices lies on the actual surface.
- Delaunay Triangulation is actually a
triangulation for certain energy function.
8Data-Dependent Triangulation
- Algorithm 1
- Given any triangulation of vertices, calculate
the Bernstein-Bézier representation, compute the
energy of the associated surface over each
triangles. - Sort the energies computed on the previous step
in decreasing order. - From the triangle with biggest energy, swap the
edges to reduce the energy. - Algorithm 2
- Use conventional Delaunay Triangulation and
replace angle-optimal swap test into
energy-optimal swap test.
9Data-Dependent Triangulation
- Results
- Both algorithms yield similar results.
- Smooth surfaces Only limited reduction in energy
function is observed. - Non-smooth surfaces Substantial decrease in
energy is found. However, this does not imply
the resulting surface is visually more pleasing.
10Constrained Delaunay Triangulation
- Given a set of constraining edges, find an
optimal triangulation including the constraining
edges. - User can specify the edges that must appear in
the triangulation. - Standard Delaunay Triangulation always
triangulate the convex hull. - Constraining edges are given in the form of
planar straight line graph (PSLG). - There are no intersection among these edges. We
can avoid this limitation by converting
intersections into vertices.
11Constrained Delaunay Triangulation
- Conforming Delaunay Triangulation
- Given a set of vertices vi, find intersections
vj between PSLG and Delaunay Triangulation of
vi. - Do the Delaunay Triangulation on vertices
(vi?vj) - Drawback Too many vertices! O(m2n)
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
12Constrained Delaunay Triangulation
- Constrained Delaunay Triangulation
- Given a set of vertices vi, triangulate using
Delaunay Triangulation. - Delete all the triangles that overlap
constraining edges. Retriangulate both sides of
these edges.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
13Constrained Delaunay Triangulation
- Triangulation by splitting constraining edges
- Do the Delaunay Triangulation for vi.
- Find constraining edges not in the triangulation.
If the diametral circle of the edge contains
some points (encroached), split this edge by
adding a vertice in the center of the segment.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
14Delaunay Refinement
- Delaunay Triangulation does not guarantee the
actual minimum angle of triangles. - We can refine the triangulation by adding more
vertices. - Specify the maximal acceptable aspect ratio for
triangles. Add vertex for skinny triangles. - Split edge when the triangle is too skinny.
- Guarantee the quality of generated triangle mesh.
(Chew, Ruppert, Shewchuk)
15Delaunay Refinement
- Input PSLG ej and vertices vi
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
- Steps
- 1. Obtain Delaunay Triangulation of vertices
vi. - Divide conquer algorithm (Lee and Schachter) or
- Plane-sweep algorithm (Fortune) or
- Incremental insertion algorithm (Lawson).
16Delaunay Refinement
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
- 2. Do the constrained Delaunay Triangulation on
triangles generated at previous step.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
17Delaunay Refinement
- 3. Delete triangles outside the concavity of
PSLG. - User define the triangle to be deleted by
assigning a point inside the Constrained Delaunay
Triangulation, but outside the concavity. - Run the point location algorithm, find the
triangles, recursively delete until hits the
boundary.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
18Delaunay Refinement
- 4. Correct Bad Triangles in the triangulation
generated from previous step. - Find triangles with large aspect ratio (skinny
triangles). - For each triangle, find the circle it inscribes,
and add the center of the circle as a vertex of
the mesh. - Recursively flip edge for inserted vertex.
- If the circle encroaches upon any segment
- Delete the vertex. Split the segments this circle
encroaches upon.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
19Delaunay Refinement
Running of Delaunay Refinement
algorithm. Highlighted segments are segments
before split, or triangles before vertex
insertion.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
203-D Delaunay Triangulation
- We can do triangulation for higher dimensions by
using similar technique of 2-D Delaunay
Triangulation. - 3-D Replace circles by spheres, triangles by
tetrahedrons.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
213-D Delaunay Triangulation
- Input Set of vertices, constraining edges
facets. - Steps
- For all constraining edges, make a diametral
sphere. - If some vertices encroach (inside) the sphere,
split this edge by adding a vertex in the middle.
Step 1.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
223-D Delaunay Triangulation
- For all constraining facets, find its equatorial
sphere. - If the equatoral sphere are encroached by some
vertices, add the center of the sphere as a new
vertex.
Step 2.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
233-D Delaunay Triangulation
- Find all skinny tetrahedrons, find the spheres
they inscribe. - Add the center of the spheres as a vertex.
- Skinny criteria The ratio of the sphere radius
to shortest tetrahedron edge.
Step 3.
Schewchuk. (http//www.cs.cmu.edu/jrs/jrspapers.h
tml)
24References
- D Dobkin et al., Special Issue on Computational
Geometry. Proceedings of the IEEE, Vol. 80, No.9,
Sep. 1992. - Applications for Delaunay Triangulation can be
found on http//www.ics.uci.edu/eppstein/gina/del
aunay.html - N. Max, P. Hanrahan et al., Area and Volumn
Coherence for Efficient Visualization of 3D
Scalar Functions, http//www.llnl.gov/graphics/doc
s/VolViz90.pdf - E. Quak, L. Schumaker, Cublic Spline Fitting
using Data Dependent Triangulations. Computer
Aided Geometric Design, Vol.7, 1990, pp293-301 - J. Ruppert. A Delaunay Refinement Algorithm for
Quality 2-Dimensional Mesh Generation. J.
Algorithms, pp.548-585, May 1995
http//science.nas.nasa.gov/Pubs/TechReports/RNRre
ports/jruppert/RNR-94-002/RNR-94-002.html - J. Shewchuk, Selected Papers on Triangulation,
http//www.cs.cmu.edu/jrs/jrspapers.html