두 점 사이의 거리 구하기
2차원과 3차원
플레이어 사이의 거리 혹은 충돌하려는 두 물체 사이의 거리, 더 나아가서는 사정 거리 안에 들어왔는지 아닌지를 알고 싶을 때가 생기면 어떻게 해야 할까?
가장 간단한 방법은 피타고라스의 정리를 이용하는 것이다.
◎ 두 점 사이의 거리
A와 B를 잇는 선분을 하나 그린 후 이를 빗변으로 하는 직각 삼각형을 하나 그린다.
A(x1, y1), B(x2, y2)라 할 때 나머지 하나의 꼭짓점의 좌표는 C(x2, y1)이 된다.
여기서 피타고라스의 정리를 사용하면 A와 B를 잇는 빗변의 거리를 구할 수 있다.
제곱근은 직접 연산을 통해 계산해도 되지만 <math.h> 헤더를 추가해 sqrt 와 pow를 이용해도 된다.
sqrt(값) 제곱근을 구하는 함수로 제곱근을 반환
pow(값, 지수) 제곱을 구하는 함수.
◎ 3차원으로의 확장
위의 거리의 공식은 xy축에 추가로 z축을 사용하는 3차원으로도 쉽게 확장할 수 있다.
공식에 z좌표만 추가하면 된다.
두 점 A(x1, y1, z1), B(x2, y2, z2) 사이의 거리는
'GameProgramming > 게임수학 & 물리' 카테고리의 다른 글
[게임수학] 행렬 上 (연산, 단위행렬, 전치행렬) (0) | 2020.02.12 |
---|---|
[게임 수학] 포물선과 원 충돌체크 (0) | 2020.01.21 |
[게임 수학] 삼각함수(sin, cos, tan) (0) | 2020.01.20 |
[게임수학] 벡터(Vector) 下 (0) | 2020.01.10 |
[게임수학] 벡터(Vector) 上 (0) | 2020.01.09 |