3차원 공간에 놓인 두 점의 좌표가 주어졌을 때, 두 점 사이의 거리를 계산하여 그 결과를 화면에 출력하는 것이 이번 예제의 목표입니다.
3차원 거리 계산 공식
3차원 공간에는 x축, y축, z축의 세 축이 존재하며, 각 점은 (x1, y1, z1), (x2, y2, z2)와 같이 세 개의 좌표 성분으로 표현됩니다. 두 점 사이의 거리는 다음과 같은 유클리드 거리 공식을 사용해 바로 계산할 수 있습니다.
거리 = √((x2 − x1)² + (y2 − y1)² + (z2 − z1)²)
즉, 각 축 방향의 좌표 차이를 제곱한 뒤 모두 더하고, 그 합의 제곱근을 구하면 됩니다. 아래 그림은 3차원 공간의 세 축과 좌표를 나타낸 것입니다.

문제 해결 접근 방법
- 두 점의 좌표 (x1, y1, z1)와 (x2, y2, z2)를 입력값으로 받습니다.
- 위 공식을 적용해 두 점 사이의 거리를 계산합니다.
- 계산된 거리 값을 출력합니다.
알고리즘
시작
1단계 → 두 점 사이의 거리를 계산하는 함수 선언
void three_dis(float x1, float y1, float z1, float x2, float y2, float z2)
float dis = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) + pow(z2 - z1, 2) * 1.0) 대입
dis 출력
2단계 → main() 함수 내부
float x1 = 4
float y1 = 9
float z1 = -3
float x2 = 5
float y2 = 10
float z2 = 9
three_dis(x1, y1, z1, x2, y2, z2) 호출
종료
C 언어 예제 코드
#include <stdio.h>
#include <math.h>
// 두 점 사이의 거리를 구하는 함수
void three_dis(float x1, float y1, float z1, float x2, float y2, float z2) {
float dis = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) + pow(z2 - z1, 2) * 1.0);
printf("두 점 사이의 거리 : %f", dis);
return;
}
int main() {
float x1 = 4;
float y1 = 9;
float z1 = -3;
float x2 = 5;
float y2 = 10;
float z2 = 9;
three_dis(x1, y1, z1, x2, y2, z2);
return 0;
}
코드 설명
이 코드에서 사용된 주요 요소는 다음과 같습니다.
- pow(a, b) : math.h 헤더 파일에 정의된 함수로, a의 b제곱을 계산합니다. 여기서는 각 축 좌표 차이의 제곱을 구하는 데 사용됩니다.
- sqrt(n) : 인자로 전달된 값의 제곱근을 반환합니다. 계산 과정에서 * 1.0을 곱해 부동소수점 연산임을 명확히 합니다.
- three_dis() : 여섯 개의 좌표 값을 매개변수로 받아 거리를 계산하고, printf()로 결과를 출력하는 사용자 정의 함수입니다.
실행 결과
위 코드를 컴파일하여 실행하면 다음과 같은 결과가 출력됩니다.
두 점 사이의 거리 : 12.083046
점 (4, 9, −3)과 점 (5, 10, 9) 사이의 거리는 √146 ≈ 12.083046으로 계산됩니다.