점과 직선 사이의 거리 쉽게 이해하기 — 개념과 원리
점과 직선 사이의 거리는 둘을 잇는 가장 짧은 선분의 길이이며, 이 선분은 언제나 직선과 수직으로 만납니다. 이 계산기는 ax + by + c = 0 꼴의 직선과 점 (x₀, y₀)을 입력받아 그 거리와 함께, 직선 위에서 주어진 점에 가장 가까운 점인 수선의 발을 구합니다. 해석기하 문제, 도면에서의 이격 거리 확인, 컴퓨터 그래픽과 충돌 판정, 최소제곱 근사 등에 쓰입니다.
계산 방법
- 거리: d = |ax₀ + by₀ + c| ÷ √(a² + b²)입니다.
- 수선의 발: t = (ax₀ + by₀ + c) ÷ (a² + b²)라 하면 수선의 발은 (x₀ − a·t, y₀ − b·t)입니다.
a와 b가 동시에 0일 수는 없습니다. 직선이 y = mx + k 꼴이면 mx − y + k = 0으로 바꾸어 a = m, b = −1, c = k로 넣습니다.
원리
벡터 (a, b)는 직선 ax + by + c = 0에 수직인 법선벡터입니다. 따라서 점에서 직선까지 가장 짧은 경로는 이 법선 방향을 따라갑니다. 점의 좌표를 좌변에 대입한 값 ax₀ + by₀ + c는 직선 위의 점에서는 0이고, 점이 직선에서 멀어질수록 법선의 길이 √(a² + b²)를 한 단위로 하여 비례해서 커집니다. 그러므로 이 값을 법선의 길이로 나누면 실제 거리가 되고, 절댓값은 점이 직선의 어느 쪽에 있는지를 나타내는 부호를 없애 줍니다. 수선의 발은 점에서 법선 방향을 따라 그만큼 되돌아간 위치이며, 이를 계산하는 것이 t입니다.
예제 풀이
- 입력값: 직선 3x + 4y − 10 = 0, 점 (5, 6)입니다.
- 대입: 3 × 5 + 4 × 6 − 10 = 15 + 24 − 10 = 29입니다.
- 법선의 길이: √(3² + 4²) = 5입니다.
- 거리: |29| ÷ 5 = 5.8입니다.
- 수선의 발: t = 29 ÷ 25 = 1.16이므로 (5 − 3 × 1.16, 6 − 4 × 1.16) = (1.52, 1.36)입니다. 3 × 1.52 + 4 × 1.36 = 10이므로 직선 위에 있습니다.
| 점 y₀ | 거리 |
|---|---|
| 1.5 | 2.2 |
| 3 | 3.4 |
| 4.5 | 4.6 |
| 6 | 5.8 |
| 7.5 | 7 |
| 9 | 8.2 |
| 12 | 10.6 |
결과 해석
거리는 항상 0 이상이며, 0이면 점이 직선 위에 있다는 뜻입니다. ax₀ + by₀ + c의 부호(예제에서는 양수)는 점이 직선의 어느 쪽에 있는지를 알려 주므로 두 점이 같은 쪽에 있는지 판정할 때 유용합니다. 방정식 전체에 같은 수를 곱해 6x + 8y − 20 = 0으로 바꾸어도 분자와 분모가 함께 커지므로 거리는 변하지 않습니다.
흔한 실수
- 모든 항을 한쪽으로 옮겨 우변을 0으로 만들기 전에 a, b, c를 읽는 경우입니다.
- 분모의 제곱근을 빼먹고 a² + b²로 나누는 경우입니다.
- 3x + 4y = 10을 c = 10으로 넣는 경우입니다. 올바른 값은 c = −10입니다.
자주 묻는 질문
평행한 두 직선 사이의 거리는 어떻게 구하나요?
ax + by + c₁ = 0과 ax + by + c₂ = 0 사이의 거리는 |c₁ − c₂| ÷ √(a² + b²)입니다.
직선에 대해 대칭인 점은 어떻게 구하나요?
법선 방향으로 두 배 이동하면 됩니다. (x₀ − 2a·t, y₀ − 2b·t)이므로 예제에서는 (−1.96, −3.28)입니다.
y = mx + k 꼴에도 쓸 수 있나요?
네. 정리하면 d = |mx₀ − y₀ + k| ÷ √(m² + 1)입니다.
출처: J. Stewart, L. Redlin and S. Watson, Precalculus: Mathematics for Calculus, Cengage · D. Zwillinger (ed.), CRC Standard Mathematical Tables and Formulae, CRC Press, analytic geometry of the plane