Why does isInterior of Delaunay Triangulation fail if I remove a point constraint between two colinear constraints
조회 수: 3 (최근 30일)
이전 댓글 표시
When generating a Constrained Delaunay Triangulation object (CDT for short), any points that fall on a constraint split the constraint. This was not a problem since the 'handedness' of the constraints remained the same, i.e. counterclockwise ordered constraints represented exterior constraints, and conversely, clockwise ordered constrained represented holes. The function isInterior(CDT) on the new grid matched my expectations.
When removing points from a CDT, I employed the following code.
CDT.Points(K,:)=[]
This always worked as expected for any points interior or exterior to constraints. However, when I remove the splitting constraining points , isInterior(CDT) produces strange results. Sometimes the isInterior remains correct, but other times, it will make everything exterior EXCEPT holes, for example. The resulting CDT has constraints that look when plotting; a quiver did not have lines tracing all through the figure.
This took me quite a long time to debug in my code since it happens randomly in simulations. I don't like my workaround: test the grid over every constraint edge for collinearity, then test then if on the edge, remove any XY points that pass the tests. This process takes a long time since I have between 1 million and 100 million grid points, and between 500 ~ 10,000 constraint edges.
Any insights why a CDT will return unexpected isInterior tests?
댓글 수: 0
답변 (0개)
참고 항목
카테고리
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!