답변이 처음부터 업데이트되고 다시 작성되었습니다.
폴리 토프 가 제공 됩니다. P에서 Dobkin-Kirkpatric 계층 구조를 실행합니다. 이것은 일련의 폴리 탑 P 1 ⊆ P 2 ⊆ … ⊆ P k = P를 제공 합니다. P 에서 쿼리 지점 q 에 가장 가까운 지점을 찾으려고 가정합니다 . 기본 알고리즘은 P 1 에서 가장 가까운 점 c 1 ~ q 를 계산하여 시작한 다음 c 1에 인접한 모든 새로운 영역 (텐트)을 고려 하고 가장 가까운 점 c 2 ~ q를 찾습니다.PP1⊆P2⊆…⊆Pk=PPqc1qP1c1c2q이 새로운 지역에서 도달 할 때까지이 방식으로 계속 진행하십시오 .Pk
이제 가 가장자리에 있으면 아무런 문제가 없습니다. 두 개의 텐트 만이 가장자리를 만지거나 그 중 하나만 가장자리를 덮을 수 있습니다. 따라서이 경우 C i 에서 c i + 1 을 업데이트하는 데 일정한 시간이 걸립니다.cici+1Ci
따라서 문제는 가 고도의 정점에있을 때 P i + 1로 이동할 때 인접한 새로운 텐트 수가 많을 수 있기 때문 입니다. 이를 극복하기 위해 낮은 정점 모음으로 큰 정점을 시뮬레이션합니다. 특히, 각 단계에서, c i 가 꼭짓점 v 에 있다면, 우리는 p 에 인접한 두 개의 연속 에지 e i , e ' i 를 v에 인접하게 기억 하여 P i + 1 에서 q 에 가장 가까운 점을 기억할 것입니다ciPi+1civei,e′ivqPi+1인접하거나이 두 가장자리 중 하나를 덮고있는 텐트에 놓여 있습니다. 따라서 필요한 시간에 일정한 계산을 수행 할 수 있습니다.
그래서 우리는 올라갈 때이 두 가지 가장자리를 추적하는 방법에 대한 문제로 남아 있습니다.
그렇게하기 위해, P 의 모든 정점 에 대해 접선 방향 t v를 사전 계산한다 . 하자 Q를 난 ( V ) 의 정점 도면이다 볼록 다각형 V 다각형에 대한 P I (도 정점을 정의하는 평면과는 방향의 정상있다 t의 V ). 개념적으로, Q 1 ( V ) , Q 2 ( V ) , . . . , Q k ( v )vPtvQi(v)vPitvQ1(v),Q2(v),...,Qk(v)2D DK 계층처럼 작동합니다. 경우에 가장 가까운 점 에 Q의 정점에 놓여 w 에 다음이 대응 V 및 인접 에지 예 에서 P I , 여기서 에지 전자 교점에서 정점 도면의 평면 w . 에 가장 가까운 지점하면 Q는 내가 ( V ) 로 Q의 가장자리에 거짓말 전자 ' , 당신은 두 인접한 모서리 기억 P 난을 의 두 정점 정의하는 전자를 ' 여기 (Qi(v)qwvePiewQi(v)qe′Pie′ 는 Q i ( v )에 속한다.e′Qi(v)
그리고 지금 우리는 경우에, 참으로 ... 완료 에 있습니다 Q 전 + 1 ( V ) (이 그냥 2D DK 계층 구조이기 때문에) 우리는 일정한 시간에 업데이트 할 수 있습니다. 반면에 c i + 1 이 더 이상 Q i + 1 ( v ) 에 있지 않으면 이전 지점 c i에 인접 해 있거나이를 덮고있는 새 텐트에 속해야합니다 . 두 경우 모두 일정한 시간에 업데이트 할 수 있습니다.ci+1Qi+1(v)ci+1Qi+1(v)ci