Plane vs Plane 교차직선구하기

평면 vs 평면의 교차직선구하는 방법은 간단하다..

두평면의 노멀을 구한뒤 CrossProduct 방향으로 직선의 디렉션을 구할 수 있다.

문제는 Origin ..

두개의 평면의 P1과 P2라 하면 P1의 평면 방정식

a1x + b1y + c1z = d1

P2의 평면 방정식

a2x + b2y + c2z = d2

P1과 P2에 수직인 평면 P3라 하면

a3x + b3y + c3z = d3

세개의 삼원일차 방정식을 풀면 Origin P(x,y,z)를 구할수 있다.

3개의 평면의 교점은 반드시 존재하므로 Matrix로 푼다.

교차선 L(t)에 대해
L(t) = t*Cross(N0,N1)/|Cross(N0,N1)| + c0*N0 + c1*N1
이므로
d0 = Dot(N0,L) = c0*Dot(N0,N0) + c1*Dot(N0,N1) = c0 + c1*d
d1 = Dot(N1,L) = c0*Dot(N0,N1) + c1*Dot(N1,N1) = c0*d + c1
c0와 c1은 다음과 같이 구해진다..
c0 = (d0 – d*d1)/det
c1 = (d1 – d*d0)/det
det = 1 – d^2.

답글 남기기

이메일 주소는 공개되지 않습니다.