Is there a way to prevent or circumvent the formation of long edges in a Deluanay Triangulation?
조회 수: 1 (최근 30일)
이전 댓글 표시
I am finding that the delaunay() function causes long edges to be formed near to the boundries of my triangulation.
These are undesirable and are causing trouble for later computations.
Is there any way to prevent them forming or, failing that, detect them and make these edges reference nearer end points?
댓글 수: 1
Sean de Wolski
2011년 6월 2일
What later computations are long edges undesirable for? Maybe you could focus that computation (per John's response)?
답변 (2개)
John D'Errico
2011년 6월 2일
Since a delaunay triangulation is necessarily convex, exactly how do you intend to triangulate the domain without long edges? TRY IT! Remember, you MUST have a convex result.
You can use an alpha shape, which starts from a delaunay triangulation, and erodes some of the parts.
댓글 수: 3
John D'Errico
2011년 6월 2일
The delaunay triangulation does compute a convex result. The fact is, you cannot do better around the edges with any triangulation. For example...
>> X = rand(10,2)
X =
0.81472 0.15761
0.90579 0.97059
0.12699 0.95717
0.91338 0.48538
0.63236 0.80028
0.09754 0.14189
0.2785 0.42176
0.54688 0.91574
0.95751 0.79221
0.96489 0.95949
>> tri = delaunayn(X)
tri =
2 3 8
8 5 2
10 2 9
2 5 9
6 1 7
7 3 6
7 8 3
5 8 7
4 9 5
4 7 1
5 7 4
>> trimesh(tri,X(:,1),X(:,2))
There are long triangles around the edges. No alternative triangulation exists that does not do the same, yet is still convex and triangulates that set of points! It is the requirement of convexity that causes your problem.
Wolfgang Schwanghart
2011년 6월 2일
Hi AJP,
without knowing what exactly yoou want to do, I like to link to a tool that was extremely helful to me.
Perhaps it does what you need.
Cheers, W.
참고 항목
카테고리
Help Center 및 File Exchange에서 Delaunay Triangulation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!