-2

JavaScript を使用して、R² で単位ベクトルを計算しようとしています。

1 の出力を期待していましたが、1.949.6 を取得しました。この実装で何が欠けていましたか?

    function calcHypotenuse(a, b) {
        return (Math.sqrt((a * a) + (b * b)));
    }
      
    function contructUnitVector(a, b) {
        const magitude = calcHypotenuse(a, b);
        return (Math.sqrt(a + b / magitude)); 
    }
    
    console.log(contructUnitVector(3, 4)); // 1.949, expected 1

4

1 に答える 1

1

単位ベクトルは数値ではなく、... ベクトルです。R² のベクトルの座標が与えられている場合、次のように対応する単位ベクトルを取得できます。

function vectorSize(x, y) {
   return Math.sqrt(x * x + y * y);
}
     
function unitVector(x, y) {
   const magnitude = vectorSize(x, y);
   // We need to return a vector here, so we return an array of coordinates:
   return [x / magnitude, y / magnitude]; 
}
   
let unit = unitVector(3, 4);

console.log("Unit vector has coordinates: ", ...unit);
console.log("It's magnitude is: ", vectorSize(...unit)); // Always 1 

于 2020-12-09T12:15:13.937 に答える