오다기리 박의 알고리즘 노트

직선과 직선의 교차점 구하기 본문

컴퓨터 그래픽스/메쉬 기하학

직선과 직선의 교차점 구하기

오다기리 박 2022. 1. 25. 13:07

3차원 공간에서 두 직선사이의 교차점을 구해보자.

두 직선의 방정식을 다음과 같이 정의한다.

 

 

 

 

벡터 자기 자신과 외적을 하면 0벡터가 나온다는 사실을 이용하여

 

 

 

 

직선의 교점을 다음과 같이 구한다.

 

 

 

 

위에서 구한 s가 교차점에서 두 직선의 파라미터이다. 만약에 분모가 0이라면 두 직선은 평행하므로 만나지 않는다. 또한 두 직선이 서로 꼬인(skew) 위치에 있다면 즉, 공통 평면위에 있지 않으면 만나지 않으며 이때 st는 두 직선의 가장 가까운 점을 나타낸다. 

 

두 직선이 유한한 길이의 선분 (line segment)라면 s t 가 0과 1 사이에 있는지도 확인해봐야한다. 이 범위를 벗어나면 선분 밖에서 만난다.

 

 

 

[참고] Real-time rendering. Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman.