2018년 7월 4일 수요일

반직선과 구 충돌 ( Ray-Sphere intersection )

■ 구의 방정식



중앙점 c가 있고 구 위의 어떠한 점 x가 있을때



너무 당연하게도 위와 같은 구에  대한 방정식을  쓸수가있다.

■ 충돌에 대한 경우의 수



반직선, 직선, 선분 전부다 구와의 충돌에 있어서 위의 세가지 경우가 있을것이다. 충돌하지 않을때, 두 점에서 충돌할때, 한점(접선 을 포함하여 )에서 충돌할때가 있다.

■ t 값 구하기



란 직선의 방정식이 주어졌을때, 평면과 선분의 충돌과 마찬가지로 이 문제또한 결국 t값을 구하므로 해결할수가있다. 그리고 총 세가지 충돌의 경우의 수로 미루어봤을때, t값또한 세가지 경우가 나올것이다. 첫번째는 t값에 대한 해가없을때, 즉 충돌하지 않을때이고 두번째는 t에 대한 해가 두개나올때, 즉 두 점에서 충돌할때이고 세번째는 t에 대한 해가 한개 나올때 ,즉 한점에서 충돌할 때이다. 이 사실을 상기하여 평면과의 충돌처럼 마찬가지로 구의 방정식에 R(t)를 넣으므로 t값을 구해보도록하자.



일단은 식을 전개하면 위와 같이 나올것이다. 그런데 형태가 2차 다항식의 형태이다. 그래서



위와 같다고할때 근의 공식에 따라


위 혹은 아래의 근의 공식으로 놓을수가 있다.  그리고 판별식 b-ac( 혹은 b^2-4ac) 에 따라 위에서 언급했듯 해가없는경우( b-ac < 0 ), 해가 두개인경우 ( b-ac > 0 ), 해가 하나인경우( b-ac = 0 ) 인것도 확인할수가있다.

나머지는.. 치한된 a, b, b', c를 다시 풀어  연산하면 되니 더이상의 설명은 필요없을거같다.






댓글 없음:

댓글 쓰기