Exercise: Geometry
We will create a few utility functions for 3-dimensional geometry, representing a point as [f64;3]
. It is up to you to determine the function signatures.
// Calculate the magnitude of a vector by summing the squares of its coordinates
// and taking the square root. Use the `sqrt()` method to calculate the square
// root, like `v.sqrt()`.
fn magnitude(...) -> f64 {
todo!()
}
// Normalize a vector by calculating its magnitude and dividing all of its
// coordinates by that magnitude.
fn normalize(...) {
todo!()
}
// Use the following `main` to test your work.
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));
}