이 계산기의 기능
이 도구는 3차원 공간에 놓인 두 직선 사이의 최단(최소) 거리를 구합니다. 각 직선은 직선이 지나는 한 점 \(P = (a, b, c)\)와 직선에 평행한 방향 벡터 \(V = (p, q, r)\)로 표현됩니다. 이는 대칭형 방정식 \(\frac{x-a}{p} = \frac{y-b}{q} = \frac{z-c}{r}\)에 들어가는 값과 정확히 같습니다. 특정 단위나 국가별 규칙이 적용되지 않는 순수 해석기하학 도구이므로 어디서나 동일하게 사용할 수 있습니다.
사용 방법
먼저 첫 번째 직선의 점 P1의 세 좌표와 방향 벡터 V1의 세 성분을 입력하고, 두 번째 직선에 대해서도 같은 방식으로 입력합니다. 그런 다음 계산 버튼을 누르세요. 결과에는 최단 거리가 표시되며, 두 직선의 관계가 교차, 꼬인 위치(skew), 평행, 일치 중 어디에 해당하는지 함께 분류해 줍니다. 방향 벡터가 \((0, 0, 0)\)인 경우에는 직선을 정의할 수 없으므로 입력이 거부됩니다.
공식 풀이
각 직선 위의 한 점을 잇는 벡터를 \(\vec{W} = \text{P2} - \text{P1}\), 두 방향 벡터의 외적을 \(\vec{N} = \vec{V_1} \times \vec{V_2}\)라고 합시다. 두 직선이 평행하지 않을 때, 최단 거리는 스칼라 삼중곱의 절댓값을 \(\vec{N}\)의 크기로 나눈 값입니다:
$$d = \frac{\left| \vec{W} \cdot \vec{N} \right|}{\left| \vec{N} \right|}$$이 값이 0이면 두 직선은 교차하고, 0이 아니면 꼬인 위치(서로 만나지 않으면서 평행하지도 않은 관계)에 있습니다. \(\vec{V_1}\)과 \(\vec{V_2}\)가 서로 스칼라 배수인 경우 \(\vec{N}\)이 영벡터가 되므로, 계산기는 점과 직선 사이의 거리 공식 $$d = \frac{\left| \vec{W} \times \vec{V_1} \right|}{\left| \vec{V_1} \right|}$$로 전환합니다. 이때 결과가 0이면 두 직선은 일치하는 것입니다.
계산 예시
\(\text{P1} = (-1, 2, 0)\), \(\vec{V_1} = (2, 3, 1)\), \(\text{P2} = (3, -4, 1)\), \(\vec{V_2} = (1, 2, 1)\)이라고 합시다. 그러면 \(\vec{W} = (4, -6, 1)\)이고 $$\vec{N} = \vec{V_1} \times \vec{V_2} = (1, -1, 1)$$이며 \(|\vec{N}| = \sqrt{3} = 1.7320508\)입니다. 내적은 \(\vec{W} \cdot \vec{N} = 4 + 6 + 1 = 11\)이므로 $$d = \frac{11}{\sqrt{3}} = 6.350853$$이 됩니다. \(d\)가 0이 아니므로 두 직선은 꼬인 위치에 있습니다.
자주 묻는 질문
"꼬인 위치(skew)"란 무엇인가요? 꼬인 위치에 있는 직선이란 3차원 공간에서 평행하지도 않고 서로 교차하지도 않는 두 직선을 말합니다. 일정한 최단 거리를 유지한 채 서로를 비껴 지나갑니다.
거리가 왜 0으로 나오나요? 거리가 0이라는 것은 두 직선이 적어도 한 점을 공유한다는 의미입니다. 즉 두 직선이 교차하거나, 평행하다면 사실상 같은 직선(일치)이라는 뜻입니다.
방향 벡터의 길이가 결과에 영향을 주나요? 아닙니다. 방향 벡터를 상수배해도 직선 자체는 바뀌지 않으며, 공식에서 해당 크기로 나누어 정규화하기 때문에 거리에는 전혀 영향을 주지 않습니다.