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

1. 구의 정의

2. 구간 거리 계산

3. 충돌 조건

4. 의사코드

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

bool isCollision(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB) {
    // 두 구의 중심 간의 거리 계산
    float distance = (centerA - centerB).length();

    // 두 구의 반지름 합보다 중심 간의 거리가 작거나 같으면 충돌
    return distance <= (radiusA + radiusB);
}

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

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