필터 지우기
필터 지우기

3D Delaunay Triangulation Error/Weirdness

조회 수: 5 (최근 30일)
John Shackleton
John Shackleton 2020년 8월 11일
답변: Pratyush Roy 2020년 9월 2일
Hey everyone,
I want to use the delaunay triangulation function to triangulate a sphere, but I'm getting some weird triangles/resutls i.e.:
From:
[x, y, z] = sphere(100);
D = delaunay(x(:) ,y(:), z(:));
hidden on
trimesh(D,x,y,z)
Is there any way to make the triangulation more regular so that most connections appear like:
As in are there other functions, parameters, ways to do this?
I noticed that the 2D delaunay looks better when plotted as in:
[x, y, z] = sphere(100);
D = delaunay(x(:) ,y(:));
hidden on
trimesh(D,x,y,z)
But, I want the manifold geometry to be contained in the triangulation, and I don't believe this would incorporate that (i.e. there would be no difference in output of delaunay if it was actually an ellipse along the z axis).

답변 (1개)

Pratyush Roy
Pratyush Roy 2020년 9월 2일
Since the number of faces is set to 100 for the given sphere function, the triangulation has become highly dense.
Here are some possible workarounds:
  1. Set the axis lengths to be equal such that all the axes are scaled equally.
  2. Change the figure size.
  3. Changing the number of faces to a smaller value.
The following code snippet might be helpful
[x, y, z] = sphere(100);
D = delaunay(x(:),y(:),z(:));
trimesh(D,x,y,z);
set(gcf, 'Position', [100, 100, 700, 600]);
axis equal;

카테고리

Help CenterFile Exchange에서 Delaunay Triangulation에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by