본문 바로가기
dev/javascript

[javascript] 자바스크립트 두 좌표 사이 거리구하기

by 최연탄 2023. 3. 12.
728x90
반응형

참고: https://javascript.plainenglish.io/javascript-algorithm-distance-between-points-7fe0026857e3

이 포스트에서는 x와 y 좌표로 정의된 두 점 사이의 거리를 계산하는 함수를 만들어보겠습니다.

거리 계산

먼저 x1, y1, x2, y2 네 개의 매개변수를 받는 getDistance라는 함수를 만들어 보겠습니다.

두 점 (x1, y1)과 (x2, y2)의 좌표가 주어집니다. 이 함수의 목적은 두 점 사이의 거리를 반환하는 것 입니다.

이 두 점 사이의 거리를 구하기 위해 다음 공식을 사용합니다:

dx는 두 x1, x2의 거리 차이이고 dy는 y1, y2의 거리 차이 입니다.

다음은 함수 사용 예제입니다:

getDistance(100, 100, 400, 300)
// output: 360.5551275463989

위의 예제에서 첫 번째 좌표는 (100, 400) 이고 두 번째 좌표는 (100, 300)을 받았습니다.

여기서 x1과 x2의 차를 구하면 dx²을 얻을 수 있고 y1과 y2의 차를 구하면 dy²를 구할 수 있습니다.

이제 위의 공식을 사용하여 x와 y의 차를 더한 다음 루트를 씌우면 답을 얻을 수 있습니다.

이제 위의 수도코드를 실제 코드로 작성해 보겠습니다.

코드 작성

x 좌표 사이의 차이를 얻기 위해 x2에서 x1를 빼고 x라는 변수에 할당합니다.

let x = x2 - x1;

y 좌표에 대해서도 똑같이 작성합니다.

let y = y2 - y1;

위의 공식에 따라 x와 y를 제곱합니다. 그리고 각각의 제곱을 더합니다.

x * x + y * y

다음으로 Math.sqrt() 라는 JavaScript의 Math 객체의 메소드를 사용하여 위의 결과의 제곱근을 리턴합니다.

return Math.sqrt(x * x + y * y);

다음은 전체 코드입니다:

function getDistance(x1, y1, x2, y2) {
    let x = x2 - x1;
    let y = y2 - y1;

    return Math.sqrt(x * x + y * y);
}
반응형

댓글