[vtkusers] vtkDelaunay3D numeric error
Will Schroeder
will.schroeder at kitware.com
Sat Sep 16 09:17:23 EDT 2000
Hi Alex / Jeff -
At 01:49 PM 9/14/2000 -0300, Alex Jesus Cuadros Vargas wrote:
>In vtkDelaunay3D class documentation talk about a numeric error. I
>would like to know if have some way to avoid this error.
Two things. First, about 2-3 weeks ago I checked in a major overhaul of
vtkDelaunay3D.
It is now about 10x faster and much more robust. Get them from the nightlies.
Second, the Delaunay algorithm implemented in vtk uses a point insertion
process. Each
point is added to an existing Delaunay triangulation, and every tetrahedron
whose circumspheres
contain the point are deleted leaving a star-convex cavity. The faces of
the cavity are connected to
the point forming new tetrahedron. All goes well except that the
determination of the circumsphere
and circumradius requires a solution to a linear system. This, coupled with
situations where points
are badly positioned (creating needles or pancakes) can lead to numerically
unstable situations. The
result is that the circumsphere/radius are not quite accurate. This means
the cavity when generated may
not be star convex...and newly created tetrathedra can interpenetrate the
triangulation. So what's the
numerical error? ... it depends on both the configuration and order in
which points are inserted. You might
try randomizing points if you have problems.
There are solutions out there...either use integer arithmetic (essentially
perturbing the point positions to
avoid degenerate situations). There are also symbolic solutions (exact
arithmetic). These are much more
complex and tend to be slower.
Will
More information about the vtkusers
mailing list