· GJK-EPA 알고리즘으로 플레이어를 밀어내는 오브젝트 만들기
· 분리축(SAT)충돌검사를 사용해서 밀어내는 오브젝트 만들기
· OBB충돌검사를 사용해서 밀어내는 오브젝트 만들기
· 원 충돌체크 & AABB충돌체크
· 벡터의 연산과 활용
극좌표계의 기본적인 연산에 대한 글이에요
그리고 저도 수학을 잘 아는게 아니고 제가 이해한 범위 안에서 쓰는 글이라 틀리거나 잘못된 내용이 있을수도 있어요
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1. 극좌표계에서의 각도
위에 올려놓은 그림처럼 x좌표가 오른쪽이 +방향이고, y좌표가 위쪽이 +방향일때
극좌표계의 각도는 +방향으로는 오른쪽에서 시작해서 시계 반대방향으로 회전하는 방식이에요, 이게 왼쪽 그림이에요
그리고 -방향으로는 오른쪽에서 시작해서 시계방향으로 회전하는 방식이에요, 이게 오른쪽 그림이에요
즉, +90도랑 -270도는 서로 같은 각도를 나타내는거에요
그리고 만약 각도가 360도를 넘어서면 한바퀴 돌아서 다시 처음부터 시작해요
즉 90도랑 450도는 동일한 각도를 나타내는거에요
그리고 프로그래밍 언어의 종류에 따라서, 각도로 라디안을 사용하는 경우도 있어요
라디안을 사용할때에는 파이(약3.14의 값)가 180도에요
즉, 180도를 입력하고 싶으면 180이 아니라 파이를 입력해야해요
2. 두 점 사이의 거리 구하기
위의 그림처럼 점 (x1,y1)과 점(x2,y2)의 좌표가 주어져 있을때
그 사이의 거리 d는 ((x2-x1)^2+(y2-y1)^2)^0.5로 구할수 있어요
여기서 ^2는 제곱이고, ^0.5는 루트에요
3. 특정 각도로 특정 거리만큼 떨어진 지점의 좌표를 구하는 방법
위의 그림처럼 점 (x1,y1)과, 해당 점으로부터 a각도로 r의 거리만큼 떨어진 점인 (x2,y2)가 있을때
이 x2,y2의 좌표는 각각
x2는 x1+r*cos(a)로
y2는 y1+r*sin(a)로 구할수 있어요
여기서 cos와 sin은 삼각함수 코사인과 사인이에요
4. 두 점 사이의 각도 구하기
위의 그림처럼 점(x1,y1)과 점(x2,y2)이 있을때
두 점 사이의 각도 a는 arctan2(y2-y1,x2-x1)으로 구할수 있어요
여기서 arctan2는 삼각함수 탄젠트의 역함수인 아크탄젠트 뒤에 2를 붙인거에요
그리고 이때 그 각도의 범위는 +180도 ~ -180도 범위 사이로 나와요
좋은 글인데 시리즈에 올려뒀던 GJK알고리즘 글처럼 실제 사용처의 모습도 같이 보여주면 더 좋을 거 같아! 추천누르고감.
좌표계가 아래쪽이 +인 엔진들은 y 값에 - 붙여줘야