반응형
원 (Circle)
# 원은 평면 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다.
# 중심이 (a,b)이고 반지름이 r인 원의 방정식은 (x-a)^2+(y-b)^2=r^2이다.
# (기초적인) 원을 나타내는 구조체
struct circle { float center[2]; float radius; };
구 (Sphere)
# 구는 공간 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다.
# 중심이 (a,b,c)이고 반지름이 r인 구의 방정식은 (x-a)^2+(y-b)^2+(z-c)^2=r^2이다.
struct sphere { float center[3]; float radius; };
충돌 체크
# 원이나 구나 충돌체크 원리는 똑같다.
# 두 원이나 구의 반지름의 합과 중심 간의 거리를 비교하면 된다.
# 원1과 원2의 반지름의 합은 5.5, 중심과 중심간의 거리는 6.32로 중심간의 거리가 더 멀다. 그러므로 충돌X
# 원1과 원3의 반지름의 합은 4.5, 중심과 중심간의 거리는 3.57로 중심간의 거리가 더 가깝다. 그러므로 충돌O
#원1이 (x-h1)^2+(y-k1)=r1^2, 원2가 (x-h2)^2+(y-k2)=r2^2로 정의되면
# 기본적인 충돌체크 식 : 제곱근((h2-h1)^2+(k2-k1)^2) <= r1+r2
# 더 빠른 충돌체크 식 : (h2-h1)^2+(k2-k1)^2 <= (r1+r2)^2
# 물체와 물체간의 충돌체크시에도 물체 전체를 감싸는 경계원끼리 충돌체크를 한 뒤, 세부적인 충돌체크를 하는 편이 계산이 빠르다.
반응형