Voronoï 다이어그램에서 삼각 분할하는 방법?


13

나는 일련의 포인트 ( Boost.polygon 포함 ) 에서 Voronoï 다이어그램을 계산했습니다 .

나는 각 Voronoï 가장자리에 대한 각 셀 센터를 연결하는 Delaunay 삼각 측량을 찾으려고하지만 일부 가장자리가 누락되었습니다.

다음 이미지에서 빨간색 점은 내 초기 지점이고 파란색 선은 Voronoï 모서리 (무한 모서리를 무시 함)이며 녹색 선은 삼각 측량 모서리 (각 파란색 모서리에 대해 하나의 녹색 모서리, 두 셀 원점을 연결 함)입니다.

대각선 가장자리가없는 것을 볼 수 있습니다. 내가 무엇을 놓치고 있습니까?

보로 노이 다이어그램

답변:


19

다이어그램의 중심점은 Voronoi 다이어그램의 축퇴 모서리입니다. 불규칙한 점 구름에 대해 보로 노이 다이어그램을 생성하면 모든 정점이 3 등급을 갖습니다. 4 이상의 정점이 일치하면 두 개 이상의 정점이 일치 할 때만 발생할 수 있습니다. 그것은 그들 사이에 길이가 0이라는 것을 의미합니다. 그러나이 변은 여전히 ​​들로네 삼각 분할에서 해당 변을 가져야합니다. 문제는 길이가 0 인 모서리에 방향이 없기 때문에 선택 가능한 두 모서리 중 임의의 모서리가 임의적이라는 것입니다.

내가 말하고있는 것을 시각화하기 위해 덜 규칙적인 간격으로 점을 4 개 시작하여 (-3도 정점으로 시작) 점진적으로 정규 위치로 변환하는 것을 고려하십시오.

우리는 이것을 두 가지 다른 방법으로 할 수 있으며,이 두 가지 방법으로 다이어그램에서 변질 사례가 발생합니다. 당신은 두 가지 다른 들로네 삼각 분할 (Delaunay Triangulation)로 끝날 것입니다.

여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오

코드에 어떤 이유로 든 퇴화 사례가 누락 된 것으로 가정하지만 실제로 보로 노이 다이어그램에서 들로네 삼각 분할을 계산하는 방법을 알지 못하면 이보다 더 이상 지적 할 수 없습니다.

또한 더 높은 축 퇴성을 갖는 경우 (원 주위에 동일한 각도로 분포 된 4 개 이상의 점에 의해) 추가주의가 필요할 수 있습니다.

여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오

이 애니메이션은 또한 (비축 퇴 경우에도) 해당하는 보로 노이와 들로네 가장자리가 반드시 유한 한 범위 내에서 반드시 교차하지는 않음을 보여줍니다. 따라서 끝에서 일반 다각형을 삼각 측량하는 2 (또는 3) 모서리가 실제로 중심에있는 여러 변성 모서리에 해당한다는 것을보기가 더 어려워 질 수 있습니다. 또한 총 5 개의 오각형 삼각 측량과 육각형의 14 삼각 측량이 있습니다 (비 축퇴 삼각 측량을 변형하여 14 개를 모두 얻을 수 있는지 여부는 알 수 없지만).

편집 (OP 별)

Boost.polygon으로 계산 된 Voronoi 다이어그램을 사용하면 각 Voronoi 정점과 각 정점 (시계 방향 또는 시계 반대 방향)에 연결된 각 모서리를 통과 할 수 있습니다. 이러한 방식으로 각 모서리 쌍마다 하나의 삼각형을 만들 수 있습니다 (연결된 두 모서리가 3 개의 셀에 연결됨).


당신도 여기에 대답 하거나 다른 질문을 삭제할 것입니다.
arthur.sw

3
@ arthur.sw 교차 게시는 일반적으로 SE에서 권장하지 않으므로 삭제하는 것이 더 나은 옵션이라고 생각합니다.
Martin Ender

대화 형 보로 노이 다이어그램 작성자 : alexbeutel.com/webgl/voronoi.html
arthur.sw

코드에 대해서는 stackoverflow.com/questions/34342038/… 도 참조하십시오
Giovanni Funchal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.