본문 바로가기
3D Algorithm

직선 평면 교차점(Line Plane Intersection)

by DarkRock 2023. 10. 11.
반응형

직선과 평면이 만나는 교차점을 계산하는 식에 대해 알아보도록 하겠습니다.

 

직선의 방정식은 직선을 지나는 한 점과 직선의 방향을 알면 아래와 같이 나타낼 수 있습니다.

Line(t) = lineP + t*lineDir

여기서 t는 lineP에서 얼마만큼 떨어졌는지(거리)를 나타냅니다.
lineP: 직선 위의 한점
lineDir: 직선의 방향백터

 

평면 위의 두 점 차를 평면의 노말로 내적 하면 0이 됩니다. 평면 위의 두 점 차는 평면 위의 벡터로 보시면 됩니다. 이것을 식으로 작성하면 아래와 같습니다.
planeNom • (planeP1 - planeP2) = 0                  • : 내적  
planeNom:평면의 노말
planeP1, planeP2: 평면 위의 두 점

 

평면 위의 한점 planeP2를 직선의 한 점이라고 가정하고 위 두 방정식을 t에 관해 풀어쓰면 아래와 같습니다.
t = (planeNom • planeP1 - planeNom • lineP) / planeNom • lineDir

 

t를 구하면 직선의 방정식을 이용하여 직선과 평면의 교차점을 구할 수 있습니다.
p(교차점) = lineP + t*lineDir

 

 

 

정리하면,

직선의 한점, 직선의 방향과

평면의 한점, 평면의 법선을 알면 평면과 직선의 교차점을 구할 수 있습니다.

 

두 벡터의 내적은 아래글을 통해서 계산할 수 있습니다.

2024.03.12 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미

 

벡터 내적 외적 계산 공식과 결과 의미

3차원 공간의 벡터 A = (x1, x2, x3), B = (y1, y2, y3) 가 있을 때, 내적(Inner product, Dot product)은 A⋅B = x1*y1 + x2*y2 + x3*y3 으로 계산할 수 있습니다. 코사인을 이용한 내적 계산 방식은 X의 길이와 Y의 길이 곱

darkrock.tistory.com

 

참고로 평면은 점 세개 혹은 한 점과 평면의 법선으로 평면의 형상을 결정할 수 있습니다. 평면의 방정식이나 평면의 특징은 아래글을 통해서 알 수 있습니다.

2023.10.20 - [3D Algorithm] - 평면 방정식 의미(개발자 관점)

 

평면 방정식 의미(개발자 관점)

평면의 방정식은 3점이 주어지거나 평면의 노말, 한 점이 주어지면 구할 수 있습니다. 일반적으로 평면의 방정식을 ax+by+cz+d = 0 이라고 나타낼 수 있는데, 여기서 a,b,c는 평면의 노말로 볼 수 있고

darkrock.tistory.com

 

반응형