구와 구의 충돌 검사

구와 구의 충돌 검사는 두 구가 서로 겹치는지를 확인하는 기본적인 물리 엔진 알고리즘 중 하나이다. 이 알고리즘은 두 구의 중심 사이의 거리가 두 구의 반지름 합보다 작거나 같은지를 확인하여 충돌 여부를 판별한다. 이를 단계별로 설명하면 다음과 같다.

1. 구의 정의

  • 각 구는 중심 좌표와 반지름으로 정의된다.

    • 구 A의 중심: $\mathbf{C}_A$

    • 구 B의 중심: $\mathbf{C}_B$

    • 구 A의 반지름: $r_A$

    • 구 B의 반지름: $r_B$

2. 구간 거리 계산

  • 두 구의 중심 간의 거리를 계산한다.

    • $d = \left| \mathbf{C}_A - \mathbf{C}_B \right|$

3. 충돌 조건

  • 두 구의 반지름 합을 구한다.

    • $r_{sum} = r_A + r_B$

  • 충돌 여부를 판별하는 조건은 다음과 같다.

    • 충돌 발생: $d \leq r_{sum}$

4. 의사코드

다음은 충돌 여부를 확인하는 의사코드이다.

5. 알고리즘의 시간 복잡도

  • 두 벡터의 거리 계산은 $O(1)$의 상수 시간이므로, 이 충돌 검사의 시간 복잡도는 $O(1)$이다.

이 방식은 매우 간단하면서도 효율적인 방법으로, 충돌 판정에 자주 사용된다.

Last updated