작업 오리 소화에 표시 깔때기 알고리즘 확실 깔때기의 검출이 어떻게 작동하는지 모르겠어요.
누군가가 방법을 명확하게 설명하거나 퍼널을 감지하는 다른 방법과 퍼널 측면이 겹치는지를 제안 할 수 있습니까?
작업 오리 소화에 표시 깔때기 알고리즘 확실 깔때기의 검출이 어떻게 작동하는지 모르겠어요.
누군가가 방법을 명확하게 설명하거나 퍼널을 감지하는 다른 방법과 퍼널 측면이 겹치는지를 제안 할 수 있습니까?
답변:
알고리즘은 이전에 찾은 경로 (이 경우 삼각형 목록)로 시작합니다.
Mikko의 블로그 게시물 맨 아래에있는 코드는 포털 배열을 구성합니다.이 배열은 경로 다각형 사이의 선 세그먼트를 나타내는 선 세그먼트 목록입니다. 스무딩 된 경로가 통과해야하는 "포털"입니다 (또는 "다각형 모서리 중간 점 추적"의 다각형 모서리). 포털 목록은 시작점과 목표점에서 줄 바꿈이 시작되고 끝납니다.
이 포털 목록은 그의 사진에서 노란색 점선으로 표시됩니다.
알고리즘은 넓은 깔때기로 시작하여 깔때기 (AD)를 조이는 동안 포털 측면 점 (선 세그먼트의 끝점)을 따라 깔때기 측면을 반복적으로 앞으로 이동하여 진행합니다.
즉, 앞으로 이동할 때마다 깔때기 가장자리가 안쪽으로 움직여야합니다. 이는 구면 과 잠재적 인 새면을 나타내는 벡터 의 교차 곱 으로 확인할 수 있습니다 ( 아래 이미지의 P × Q ; triarea2
Mikko 코드 참조 ). 한 쪽 앞으로 이동해도 깔때기가 조여지지 않으면 포털의 현재 반복 (E)에 대해 해당 쪽을 업데이트하지 않습니다.
처리해야 할 다른 경우는 깔때기가 선분으로 퇴화 될 때입니다. 이를 설명하기 위해 알고리즘은 교차 곱을 다시 사용하여 측면 중 하나가 "잘못된"면에 있는지 확인합니다. 이번에는 깔때기 정점과 오른쪽 및 왼쪽 끝점 ( R × S in 아래 이미지).
이 경우 깔때기 정점과 올바른 측면 끝점의 벡터가 스무딩 된 경로에 추가되고 ( 위의 이미지에서 R ) 알고리즘이 끝 점이 새 끝점 (FG)으로 다시 시작됩니다. 물론 그것이 목표점이라면.