꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분)
공간에서 꼬인 위치(skew lines)에 있는 두 직선 사이의 최단 거리를 구해보겠습니다. 외적과 정사영을 쓰는 방법, 매개변수와 수직조건을 쓰는 방법, 그리고 거리 함수를 최소화하는 방법을 써 보겠습니다.
글 - 알티수학 쌤@센텀 알티수학 학원
기하에서 공간에서 꼬인 위치에 있는 두 직선 사이의 거리를 묻는 문제가 종종 나옵니다.
오늘은 아래 예제를 세 가지 방법으로 풀어보겠습니다.

1. 기본 정보 확인
직선의 표준형에서 지나는 점과 방향벡터를 뽑아보면,
직선 L₁ : x=y=z 는 (x-0)/1 = (y-0)/1 = (z-0)/1 이므로
지나는 점 P₁(0, 0, 0)
방향벡터 d₁=(1, 1, 1)
직선 L₂ : (x-6)/1 = y/2 = z/3 이므로
지나는 점 P₂(6, 0, 0)
방향벡터 d₂=(1, 2, 3)
가 됩니다.
두 방향벡터 (1,1,1), (1,2,3) 은 서로 실수배가 아니므로, 두 직선은 평행하지 않습니다. 따라서 두 직선은 꼬인 위치이거나 한 점에서 만나거나 둘 중 하나겠죠. 어느 쪽인지는 거리를 구해보면 알게됩니다.
2. 방법 1 - 외적+정사영
이 방법은 두 꼬인 직선을 각각 담고 있는 평행한 두 평면을 찾는데서 출발합니다. 그런데 "두 꼬인 직선에서 평행한 두 평면이 왜 나오는지" 가 처음에는 잘 와닿지 않을 수 있습니다. 그렇다면, 아래 순서로 생각해 보죠.
(1) 꼬인 위치의 두 직선을 적당히 평행이동해서 한 점에서 만나도록 합니다. 두 직선이 한 점에서 만나면, 이 두 직선은 하나의 평면을 결정합니다.
(2) 그 평면의 법선벡터는 두 직선의 방향벡터에 모두 수직이므로, 두 방향벡터의 외적으로 구할 수 있습니다.
(3) 이제 한 점에서 만나게 했던 두 직선을 평행이동으로 원래 자리로 되돌립니다. 이 때, 각 직선은 앞의 (2)에서 구한 평면을 하나씩 들고 제자리로 돌아갑니다.
(4) 그러면 방향이 같은(즉 법선벡터가 같은) 평행한 두 평면이 생깁니다. 각 평면은 두 직선을 하나씩 담고 있죠. 두 직선 사이의 최단 거리는 곧 이 두 평행한 평면 사이의 거리입니다.
(5) 이때, 한 평면을 다른 평면에 정사영시켰을때, 정사영에서 나타나는 교점이 최단거리가 되는 그 자리 입니다.

이제 계산을 해보겠습니다. 먼저 두 평면에 동시에 수직인 공통 법선벡터 n 은 외적으로 구합니다.
그리고 각 직선의 위의 임의의 점 P₁ 과 P₂ 를 잇는 벡터를 법선벡터 n 위로 정사영시킨 길이가 바로 최단 거리입니다.

벡터 내적의 정의로부터 아래와 같이 계산되죠.
간단합니다. 이제, 이 공식으로 예제를 풀어보겠습니다.
① 법선벡터 n 계산
각 성분을 계산하면
이므로, 크기는 |n|=√(1+4+1)=√6 입니다.
② 연결벡터 P₁P₂ 계산
③ 공식 대입
분자는
분모는 |n|=√6 이므로,
거리가 0 이 아니므로, 두 직선은 꼬인 위치임이 확인됩니다.
(만약 거리가 0 이면, 두 직선이 한 점에서 만난다는 뜻입니다.)
3. 방법 2 - 매개변수와 수직조건 (대수 풀이)
이 방법은 외적을 모르더라도 풀 수 있는 방법입니다. 공간좌표와 공간벡터의 내적은 2022 개정 기하 교과 안에 있으므로, 이 풀이는 교과 범위 안이라서 만약 시험에 나오면 이 방법을 쓰는게 맞습니다.
각 직선 위의 움직이는 점을 매개변수로 놓습니다.
두 직선 사이의 거리가 최소가 되는 순간, 두 점을 잇는 벡터는 두 직선 모두와 수직입니다.
두 점을 잇는 벡터를 v 라 하면,
이 v 가 d₁=(1,1,1) 및 d₂=(1,2,3) 과 각각 수직이므로 내적이 0 입니다.
조건 1: v·d₁=0
양변을 3으로 나누면
조건 2: v·d₂=0
양변을 2로 나누면
이제 연립합니다. (식 1)에 ×3 하면 6s-3t+6=0, 여기서 (식 2)를 빼면
s=3 을 (식 1)에 넣으면 6-t+2=0, 즉 t=8 입니다. 즉, 매개변수 해가 t=8, s=3 으로 유일하게 결정됩니다. 이걸 v 에 대입하면
방법 1과 같은 답이 나옵니다.
4. 대수 풀이의 보너스 - 수선의 발 좌표
방법 2는 거리만 주는 게 아니라, 최단거리를 잇는 두 점의 좌표까지 덤으로 줍니다.
t=8 을 Q₁ 에 넣으면
s=3 을 Q₂ 에 넣으면
이 두 점을 잇는 선분이 곧 공통수선이고, 그 길이가 √6 입니다. 두 점 사이의 거리를 직접 검산해보면 (9-8)²+(6-8)²+(9-8)²=1+4+1=6, 즉 √6 으로 맞습니다.
5. 방법 3 - 거리를 함수로 보고 최소화 (편미분)
방법 2에서 "거리가 최소가 되는 순간, 연결벡터가 두 직선과 수직이다" 라고 했는데, 이게 왜 그런지 의심할 학생이 있을수 있을것 같아서, 이번엔 수직조건을 쓰지 않고 계산해보겠습니다.
일단, 두 점 사이 거리의 제곱을 함수로 놓습니다. (제곱으로 두면 루트가 없어져서 계산이 깔끔하고, 거리가 최소일 때 거리의 제곱도 최소이므로 결과는 같습니다.)
전개해서 정리하면
이제 t 와 s 각각에 대해 편미분해서 0 으로 놓습니다.
t 에 대한 편미분 (s 는 상수 취급) :
s 에 대한 편미분 (t 는 상수 취급) :
이 두 식을 연립하면 t=8, s=3 이 나오고, 대입하면 D=6, 즉
으로 앞의 두 방법과 결과가 똑같습니다.
참고로, 위에서 구한 두 편미분 식을 자세히 보면, 방법 2의 수직조건과 같은 식입니다.
∂D/∂t = 0 을 정리한 식은 곧 v·d₁=0 (식 1)
∂D/∂s = 0 을 정리한 식은 곧 v·d₂=0 (식 2)
이건 우연히 이렇게 나온것은 아니구요, D=|v|² 를 t 로 편미분하면 v·(∂v/∂t) 꼴이 나오는데, ∂v/∂t 가 바로 -d₁ 이거든요. 그래서 ∂D/∂t=0 은 v·d₁=0 과 같아집니다. s 쪽도 마찬가지로 v·d₂=0 이 되죠. 즉, "거리가 최소" → "연결벡터가 두 방향벡터와 수직" 이라는 방법 2의 가정이, 함수를 최소화하는것과 같은 작용이었던것으로 확인이 되었습니다.
참고로, 편미분을 0 으로 놓아 찾은 점은 엄밀히는 임계점일 뿐이라서, 이게 최소인지 최대인지 안장점인지는 따로 확인해야 합니다. 2변수 문제에서는 헤시안(Hessian) 으로 판정하는데, 여기서는 D_tt=6>0 이고 헤시안 행렬식 D_tt·D_ss−(D_ts)²=6·28−(−12)²=24>0 이므로 이 점이 극소(최소) 임이 보장됩니다. (사실 D 가 t, s 에 대한 아래로 볼록한 이차식이라, 헤시안을 따지지 않아도 최소임은 직관적으로 쉽게 와닫긴 하죠.)
편미분을 피하고 싶다면? 한 문자를 고정하고 일변수 이차함수로 두 번 처리하면 교과 범위 안에서 해결됩니다. 먼저 s 를 상수로 보고 D 를 t 에 대한 이차함수로 정리해서 완전제곱으로 쓰면,
가 되므로, t=2s+2 일 때 최소이고, 그때 남는 부분은
이므로 s=3 에서 최소 6 입니다. 다시 t=2(3)+2=8 이고, 최솟값 D=6, d=√6 으로 동일합니다.
6. 참고 - 외적 공식의 분자는 사실은 '부피'
여기서부터는 살짝 교과 밖 이야기입니다. 외적과, 곧 설명할 스칼라 삼중적은 현재 고등학교 교과서에 들어있지는 않습니다만, 과고생들이 가끔 물어봐서 여기에 적어둡니다.
방법 1 공식의 분자는
였는데 이것은 스칼라 삼중적(scalar triple product) 이라 부르는 연산입니다. 이 값의 절댓값은 세 벡터를 모서리로 하는 평행육면체의 부피와 같습니다.

외적 |d₁×d₂| 는 두 방향벡터가 만드는 평행사변형(밑면)의 넓이 S 입니다. (위 그림에서는 각각 |b×c| 에 해당합니다.)
벡터 d₁×d₂ 는 그 밑면에 수직이므로, 여기에 P₁P₂ 를 내적한다는 건 P₁P₂ 를 수직 방향으로 정사영시켜 높이 h를 뽑는 것입니다.
따라서 (부피) = (밑넓이) × (높이) 구조가 됩니다.
이 관점에서 거리 공식을 다시 보면, 사실 부피 공식을 거꾸로 쓴 것에 불과하죠.
즉, 높이 = 부피 ÷ 밑넓이 라는 한 줄로 공식 전체가 설명됩니다. 우리가 구하려는 최단 거리가 곧 이 가상의 평행육면체의 높이인 셈이죠.
7. 참고 예제 - 거리가 0 이라면?
끝으로, 살짝 함정 같은 예제 하나를 보겠습니다.
라 할 때, 두 직선의 거리를 구해볼까요?
필요한 정보를 빼보면 P₁(-1, -1, -2), d₁=(3, 2, 2), P₂(6, -5, -6), d₂=(1, 1, 1) 입니다. 방향벡터가 평행하지 않으니, 겉보기엔 꼭 꼬인 위치처럼 보이죠.
방법 1을 써보겠습니다. 외적은
이고, 연결벡터는 P₁P₂=(7, -4, -4) 입니다. 분자를 계산하면
분자가 0 이므로
거리가 0 입니다. 즉, 이 두 직선은 꼬인 위치가 아니라 공간의 한 점에서 만나는 겁니다.
방법 2를 써서 교점 좌표까지 구해볼까요? 매개변수로 놓고 수직조건으로 연립하면 t=11, s=26 이 나오고, 이걸 대입하면 두 점이 똑같이 (32, 21, 20) 으로 일치합니다. 두 점이 일치한다는 것 자체가 교점이라는 뜻이죠.
그래서 "거리를 구하라"는 문제에서 답이 깔끔하게 0 이 나오면, '아, 이건 사실 만나는 직선이구나' 라고 생각하면 됩니다.
