delaunay() - why does it not work for coplanar points in 3-D?
34 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Why exactly is it a condition that the points not be co-planar?
I am trying on a set and getting the following error:
Error computing the Delaunay triangulation. The points may be coplanar or collinear.
I am pretty sure I am inputting in the correct format as specified by the documentation.
Browsing the wikipedia, there seems to be no mention of this requirement for a triangulation to exist:
I am not sure if this is just an arbitrary restriction imposed by MATLAB or if I am missing something...
0 comentarios
Respuestas (1)
John D'Errico
el 6 de En. de 2022
Editada: John D'Errico
el 6 de En. de 2022
Why should it work?
For example, we can try this:
XYZ1 = dec2bin(0:7) - '0'
So we have the 8 vertices of a unit cube. There are subsets of these points that are coplanar. Of course, delaunayTriangulation will have no problem with the set.
T1 = delaunayTriangulation(XYZ1)
Howver, suppose we try a simple set of points that lie entirely in a plane?
XYZ2 = randn(8,2)*randn(2,3)
These points all lie in a single plane. We can see that is true, by looking at the results of the singular value decomposition. It will have one zero element in S.
format long g
svd(XYZ2)
plot3(XYZ2(:,1),XYZ2(:,2),XYZ2(:,3),'o')
box on
grid on
I should rotate it around to show the points lie exactly in a plane, but I'm too lazy now.
T2 = delaunayTriangulation(XYZ2)
See that delaunayTriangulation survives, although off those simplexes will have zero volume.
However, some of the older tools will fail.
delaunayn(XYZ2)
Effectively, the problem probably arises from the older codes, which were dependent on qhull libraries. It seems that tools like delaunayTriangulation survive. Note that a common solution in those older codes was to use a joggle, so a tiny additive random perturbation, that would result in the points no longer being coplanar.
0 comentarios
Ver también
Categorías
Más información sobre Delaunay Triangulation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!