플레이어 사이의 거리 혹은 충돌하려는 두 물체 사이의 거리, 더 나아가서는 사정 거리 안에 들어왔는지 아닌지를 알고 싶을 때가 생기면 어떻게 해야 할까?
가장 간단한 방법은 피타고라스의 정리를 이용하는 것이다.
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) 사이의 거리는
'그래픽스 > 수학 물리' 카테고리의 다른 글
지수의 밑변환 공식, 로그의 밑변환 공식 - 개념, 유도, 적용 (0) | 2024.04.24 |
---|---|
로그(log) 계산 공식 (상용로그, 자연로그) 총정리 (0) | 2024.04.24 |
2D AABB OBB 충돌 (0) | 2023.10.04 |
선형 보간법 (linear, bilinear, trilinear interpolation) (0) | 2022.07.25 |
아핀 변환 Affine Transformation (0) | 2022.06.20 |