演習: 幾何学

点を [f64;3] として表現し、3 次元幾何学のためのいくつかのユーティリティ関数を作成します。関数シグネチャは自分で決めてください。

// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0

// 各座標の二乗を合計し、その平方根を取ることでベクトルの大きさを
// 計算します。平方根の計算には `sqrt()` メソッドを使用します。
// たとえば `v.sqrt()` のようにします。


fn magnitude(...) -> f64 {
    todo!()
}

// ベクトルの大きさを計算し、その大きさで各座標を割ることでベクトルを
// 正規化します。


fn normalize(...) {
    todo!()
}

// 以下の `main` を使って自分の実装をテストしてください。

fn main() {
    println!("Magnitude of a unit vector: {}", magnitude(&[0.0, 1.0, 0.0]));

    let mut v = [1.0, 2.0, 9.0];
    println!("Magnitude of {v:?}: {}", magnitude(&v));
    normalize(&mut v);
    println!("Magnitude of {v:?} after normalization: {}", magnitude(&v));
}