2012-11-28 2 views
3

먼저 두 가지의 2D 폴리곤 (두 점의 좌표 인 polygonA와 polygonB)이 있습니다. 나는이 두 개의 다각형이 충돌하는지 또는 그것들 사이의 거리가 얼마인지를 알지 못한다. 또한 다각형 중 하나 인 polygonA는 고정되어 있습니다 (예 : 그것을 번역하거나 회전 할 수 없습니다. 이제 polygonB의 위치를 ​​계산하려고합니다. 1. polygonA와 polygonB가 충돌하지 않습니다. 2. polygonA와 polygonB 사이의 제곱 거리의 합계가 최소입니다. 즉, polygonB가 "완벽하게"위치하는 위치를 찾고 있습니다. polygonA에. 알고리즘을 아는 사람이 있습니까? 어떤 아이디어? 도움을 주셔서 감사합니다. 피아2 차원 폴리곤을 맞추기

+0

polyB가 완전히 polyA에 있는지, polyB가 polyA와 겹치고 있는지, 또는 무엇을 테스트할까요? 당신의 목표가 무엇인지 잘 모르겠습니다. – AJMansfield

+1

다각형 사이의 거리를 어떻게 계산합니까? 다각형은 오목하거나 볼록해야합니까? 만지기 만하면됩니다. 그렇게 할 수있는 위치가 많이 있습니다. 그 중 하나를 선택해야합니다. – Chris

+0

오! 두 폴리곤의 위치를 ​​조정하여 더 이상 겹치지 않게하는 방법을 묻습니다. 또한 거리의 제곱의 합을 최소화하는 것을 원하지는 않을 것입니다. 실제로 큰 사각형과 충돌하는 작은 다각형이 큰 것보다 멀리 이동되도록 무게를 늘릴 필요가 있습니다. 어느 쪽이든, 더 설명적인 태그는 문제를 해결하는 데 도움이되는 사람들에게 큰 도움이됩니다. 마지막으로, 대상 시스템에 대한 자세한 내용은 도움을 줄 것입니다. – AJMansfield

답변

0

polyB가 완전히 polyA 내에 있는지 확인하려는 경우 polyA의 모든 경계 지점이 polyA 내에 있는지 확인해야합니다. 원하는 것에 따라 짝수 홀수 규칙 또는 0이 아닌 와인딩 규칙 중 하나를 사용하여 테스트해야합니다. 부분 오버랩을 테스트하려는 경우 꼭지점 중 하나가 다른 다각형 내에 있어야합니다.이 경우 Even-Odd 또는 Non-Zero가 계속 진행됩니다.

+0

아니, polyB가 polyA에 완전히 놓여 있는지 테스트하고 싶지 않습니다! polyA와 polyB가 충돌하지 않고 2 개의 다각형 사이의 제곱 된 거리가 최소가되도록 polyB의 이동과 회전을 계산하려고합니다. polyA가 polyB에 완전하게 존재하는 경우도 알고리즘에 의해 제외되어야합니다! polyB가 polyA의 외부에 완전히 놓여있는 솔루션이 필요합니다! – user1859705