[CodeKata JS] Geometry Basics: Distance between points in 2D

ryan·2021년 2월 19일
0

CodeKata JS

목록 보기
2/26
post-thumbnail

Task

이 katas 시리즈는 컴퓨터로 기하학을 수행하는 기본 사항을 소개합니다.
객체에는 xy 속성(C#의 경우, XY)속성이 있습니다.
점 a점 b 사이의 거리를 계산하는 함수를 작성하십시오.

반올림 답변을 소수점 6자리까지 테스트합니다.

Initial Setting

function distanceBetweenPoints(a, b) {
  // your code here
}

My Solution

function distanceBetweenPoints(a, b) {
  let horizontal = Math.abs(b.x - a.x);
  let vertical = Math.abs(b.y - a.y);
  let distance = Math.sqrt((horizontal ** 2 + vertical ** 2).toFixed(6));
  return distance;
}

Solution 1 of Another User

function distanceBetweenPoints(a, b) {
let num=Math.sqrt(Math.pow((a.y-b.y),2)+Math.pow((a.x-b.x),2))
    Math.roundTo = (number, precision)=> +number.toFixed(precision)
    let ans=(Math.roundTo(num,6));
    
    return ans;
}

Solution 2 of Another User

function distanceBetweenPoints(a, b) {
  return Math.hypot(a.x - b.x, a.y - b.y);
}

Math.hypot()

Math.hypot ()함수는 인수 제곱합의 제곱근을 반환한다.

console.log(Math.hypot(3, 4)); // 5

console.log(Math.hypot(5, 12)); // 13

console.log(Math.hypot(3, 4, 5)); // 7.0710678118654755

console.log(Math.hypot(-5)); // 5

toFixed()

toFixed() 메서드는 숫자에서 원하는 소수점 길이만큼만 반올림하여서 문자열을 환해 줍니다.

let Num = 1.23456789

Num.toFixed(0); // '1'
Num.toFixed(1); // '1.2'
Num.toFixed(2); // '1.23'
Num.toFixed(3); // '1.235'
Num.toFixed(4); // '1.2346'
Num.toFixed(5); // '1.23457'
Num.toFixed(6); // '1,234568'
Num.toFixed(7); // '1.2345679'
Num.toFixed(8); // '1.23456789'

링크

profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글