Front-end_dev
SAT collision (Separating Axis theorem) 본문
2차원에서의 경우는, 노멀벡터를 다음과같이 구할수있다.
x = y
y = -x
이렇게 좌표를 바꿔준뒤, 꼭 정규화를 해주어야한다. 그래야 투영축은 무한해지고, 내적으로 얼마나 투영됬는가를 파악할수있기때문이다
2D에서 이 알고리즘의 중요한 이슈는 '원'과의 충돌에있다. 3차원에서 원을 드로잉할떄는 수많은 버텍스로 이루어져있기때문에 그에따라 노멀벡터가 수백개수천개가된다. 하지만 2D(HTML5 canvas)에서는 버텍스버퍼를 기반으로 드로잉하지않기때문에 원에서의 투영축은 하나로만 제한한다.
3차원에서의 적용하기위해선, 위의같은방식으로는 노멀벡터를 구할수없다 (이전포스트를 참고)
원리는 똑같고, 축을 구하기위해 노멀벡터의 구하는방식이 틀릴뿐.
'Algorithm' 카테고리의 다른 글
다익스트라 알고리즘 (0) | 2017.12.31 |
---|---|
프림 알고리즘 (0) | 2017.12.30 |
자료구조 그래프 구현에있어서 유의할 점 (0) | 2017.12.29 |
크루스칼 알고리즘 기반의 최소비용신장트리 (0) | 2017.12.28 |
애니메이션에 있어서 무한루프의 기본 원리. (0) | 2017.06.06 |