2012-02-24 5 views
1

"합법"영역이 될 폴리곤을 정의하고 사용자가 그 폴리곤 내에서 사각형을 움직일 수 있도록 허용해야합니다.충돌 감지를 수행하는 가장 좋은 방법은 무엇입니까?

다각형은 고정 된 모양이므로 그 모양의 PNG를 가져 와서 그런 식으로 포인트를 가져 오는 것이 가장 쉽다고 생각했습니다. 그러나 저는 사용자가 사각형을 드래그 할 때 사각형의 좌표를 검사하는 수학에 관해서는 여전히 손해를보고 있으며 어떤 점에서 모양을 경계 다각형의 가장자리로 이동 시켰는지 테스트합니다.

불행히도 경계 폴리곤은 상당히 복잡한 모양입니다. 나는 누군가가 그러한 충돌 탐지를 실행하는 최선의 방법이 무엇인지를 보여주는 튜토리얼에서 나를 가리킬 수 있기를 희망하고있다.

답변

4

메타넷의 excellent collision detection tutorial에는 축 정렬 경계 상자 (AABB) 및 임의의 "벽"을 사용하여 스윕 충돌을 수행하는 방법에 대한 섹션이 있습니다.

다각형이 오목한 경우, 먼저 여러 볼록한 다각형으로 분해하는 것이 가장 쉽다는 것을 알 수 있습니다. 그러면 사용 가능한 충돌 감지 알고리즘이 단순 해집니다.

+0

멋진 튜토리얼입니다. 감사합니다. 나는 거기에서 그것을 해결할 수 있다고 생각한다. –

1

사각형의 모서리 만 확인하려는 경우 각 사각형에 대해 "내부"테스트를 수행 할 수 있습니다. http://en.wikipedia.org/wiki/Point_in_polygon

그리고 당신은 다각형의 더 뾰족한 부분이 사각형이 있는지 확인하는 다각형의 모든 라인에 대한 구형의 4 개 라인의 각각에 대해 테스트를 할 수있는 '천공 없다 "고 있는지 확인하려면 그들은 교차하고있다. http://en.wikipedia.org/wiki/Line-line_intersection

관련 문제