posted by WizardMania 2014. 10. 27. 11:21

광선의 시작점을 o 방향을 d라 할때 광선의 수식



구의중심을 c 반지름r 구상의 임의의점을 p라 할떄 구의 수식



광선과 구의 교차를 구할려면 구의수식에서 p를 광선 r(t)로 변경하면 된다.



d를 단위 벡터라 가정하면


                                                                                     


위 식은 2차 방정식 이므로 근의 공식으로 해를 구할 수 있다. (위 식에서 b가 짝수이므로 짝수공식을 사용하면 된다) 



우리가 구한 식에서 짝수공식에 해당하는 a, b, c 는 다음과 같다.



해를 구하기 전에 판별식으로 해가 존재하는지를 확인해봐야 한다.



위 식들에의해 교차판정과 충돌지점을 구할 수 있다 . 

연산의 최적화를 위해 몇가지 고려해 볼 만한사항이 있다.


1) 광선이 구 안에서 시작할 때 무조건 교차한다고 할 수 있다.



2) 구가 광선의 뒤쪽에 있을 때 교차 하지 않을 것이다.



s가 0보다 크고 광선의 시작점이 구 밖에 있을때 구는 광선 뒤쪽에 있다고 판단할 수 있다.




'프로그래밍 > 수학, 물리' 카테고리의 다른 글

광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
선분 점 최단점과 최단거리  (0) 2014.10.21
광선 점 최단점과 최단거리  (0) 2014.10.20