(V1, V2, V3)
일반 삼각형 메쉬에서
3 개의 정점이 무작위로 선택되었습니다. 이 3 개의 꼭짓점에 대해, 나는 지오 데식 거리와 그 사이의 경로 (Dijkstra를 사용하여)를 계산하고 위의 그림과 같이 삼각형 모양의 표면을 형성했습니다.
이제 각 경로에있는 정점이 있으며 주어진 정점에서 측지 거리를 계산할 수 있습니다.
내가하고 싶은 것은 삼각형 모양의 영역에있는 정점 또는 삼각형을 얻는 것입니다. 어떻게해야합니까?
(V1, V2, V3)
일반 삼각형 메쉬에서
3 개의 정점이 무작위로 선택되었습니다. 이 3 개의 꼭짓점에 대해, 나는 지오 데식 거리와 그 사이의 경로 (Dijkstra를 사용하여)를 계산하고 위의 그림과 같이 삼각형 모양의 표면을 형성했습니다.
이제 각 경로에있는 정점이 있으며 주어진 정점에서 측지 거리를 계산할 수 있습니다.
내가하고 싶은 것은 삼각형 모양의 영역에있는 정점 또는 삼각형을 얻는 것입니다. 어떻게해야합니까?
답변:
플러드 필링에 의존하는 다른 방법이 있습니다. 먼저 가장자리 데이터가 시계 반대 방향 루프를 형성하는 루프로 가장자리 데이터를 정렬하십시오. 그런 다음 루프의 임의 지점에서 시작하여 해당 지점을 연결하는 모서리를 지정합니다. 아웃 바운드 경계 모서리를 사용하고 다른 아웃 바운드 모서리와 교차합니다.면 법선 방향을 가리키면 포함하지 않는 모서리입니다. 이 가장자리부터 경계 가장자리에 닿을 때까지 계속해서 채우기를 종료합니다. 아직 경계 가장자리 정점을 방문하지 마십시오.
이미 홍수 채우기 사용에 대해 언급했으며 더 유연하지만 더 나은 해결책은 스캔 라인입니다. (지오메트리에 대해 많은 가정을하지만 가능한 특정 세트 및 유사한 세트에 대해서는 가정하기 때문에 가능하다고 말합니다.)
3 개의 점이있는 예의 경우 : 세그먼트 v1, v2와 v3이있는 선에서 교점 정점을 찾으십시오. (v2의 왼쪽 상단에있는 정점)이 정점 v4를 호출합니다.
For every vertex pair a,b down v1,v4 and v1,v3
For every vertex from a to b
Mark as in the set
For every vertex pair a,b down v3,v2 and v4,v3
For every vertex from a to b
Mark as in the set
위의 이미지에서 빨간색과 녹색 선을 동시에 아래로 내려간 다음 빨간색과 파란색 선을 동시에 스캔하여 선을 스캔하기 때문에 scanline이라고합니다.
인덱스 패턴이있는 경우이 솔루션은 매우 빠릅니다. 그렇지 않으면 어떤 인접 정점이 선에 있는지 결정하기 위해 계산이 필요합니다.
재미있는 점은 스캔 라인, 무게 중심 테스트 (삼각형 경계 상자에서) 및 플러드 필은 3D 렌더링에서 삼각형을 그리는 모든 방법입니다.
표면의 각 점에 대해 표면 바운드 무게 중심 좌표를 계산 한 다음 삼각형 내부 또는 외부를 확인하는 데 사용할 수 있다고 생각합니다.
나는 정확한 알고리즘을 가지고 있지 않지만이 종류의 좌표를 정확하게 처리하는 것처럼 보이는 다음 논문을 발견했습니다.