Log Stash

as an Industrial Personnel

프로그래밍

SAT(Separating Axis Theorem) 충돌처리 구현

SavvyTuna 2017. 6. 21. 22:47

모바일에선 마우스 down이벤트가 불리지 않아서 안됨

작년에 잠깐 시간났을때, 놀다가 여태껏 OBB 충돌판정 (정확히는 SAT)을 구현해 본적이 없다는걸 깨닫곤, 카페에서 좋은 자료 하나 찾아 pixi.js를 써서 거의 베끼듯 구현해봤다.

쉽게 설명하자면..

  • 충돌 판정: 도형을 구성하는 선분과 직교하는 축들을 기준으로 점들을 투영시킨 좌표의 최대 최소값을 구하고, 모든 축에 대해서 겹쳐지는지 판별.
  • 충돌 처리: 가장 얕게 겹쳐진 축의 방향대로 겹쳐진 만큼 MTV(Minimum Translation Vector) 를 구해서 밀어냄.

이라고 할 수 있을듯.

References