프로그래밍/OpenGL

평면과 직선의 교점 구하기

이재만박사 2016. 10. 4. 13:57

직선 r1 = [2, 1, 1] + t * [0, 1, 2]

평면 r2 .[1, 1, 2] = 3 (내적, 평면)


둘 사이의 교점을 구하자


O 는 원점이다


P 는 직선과 평면의 교점이다


r1 은 직선 위의 어떤 점의 위치 벡터이다


r2 는 평면 위의 어떤 점의 위치 벡터이다


교점에서 두 벡터의 위치는 P로 같기 때문에



r2 에 r1을 대입할 수 있다



즉    ( [2, 1, 1] + t [0, 1, 2] ) . [1, 1, 2] = 3



여기에서 t 를 풀 수 있다


위의 내적을 계산하면 다음과 같다


[2, 1, 1].[1, 1, 2] + t [0, 1, 2].[1, 1, 2] = 3


2 + 1 + 2 + t + 4t = 3


5 + 5t = 3


5t = -2


t = -2/5



r1 에 t 를 구한 값을 대입하면 교점 P 가 나온다



r1 = [2, 1, 1] + (-2/5) [0, 1, 2]


   = [2, 1, 1] + [0, -2/5, -4/5]

   

   = [2, 3/5, 1/5]



따라서 교점은 다음과 같다




P = [2, 3/5, 1/5]



 



원문 사이트 : 


http://members.tripod.com/vector_applications/xtion_of_line_and_plane/index.html