프로그래밍/수학, 물리
광선 vs 구 교차판정
WizardMania
2014. 10. 27. 11:21
광선의 시작점을 o 방향을 d라 할때 광선의 수식
구의중심을 c 반지름r 구상의 임의의점을 p라 할떄 구의 수식
광선과 구의 교차를 구할려면 구의수식에서 p를 광선 r(t)로 변경하면 된다.
d를 단위 벡터라 가정하면
위 식은 2차 방정식 이므로 근의 공식으로 해를 구할 수 있다. (위 식에서 b가 짝수이므로 짝수공식을 사용하면 된다)
우리가 구한 식에서 짝수공식에 해당하는 a, b, c 는 다음과 같다.
해를 구하기 전에 판별식으로 해가 존재하는지를 확인해봐야 한다.
위 식들에의해 교차판정과 충돌지점을 구할 수 있다 .
연산의 최적화를 위해 몇가지 고려해 볼 만한사항이 있다.
1) 광선이 구 안에서 시작할 때 무조건 교차한다고 할 수 있다.
2) 구가 광선의 뒤쪽에 있을 때 교차 하지 않을 것이다.
s가 0보다 크고 광선의 시작점이 구 밖에 있을때 구는 광선 뒤쪽에 있다고 판단할 수 있다.