تمرين: هندسة الأشكال

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.

// احسب مقدار المتجه (magnitude of a vector) بجمع مربعات إحداثياته
// وأخذ الجذر التربيعي (square root). استخدم طريقة `sqrt()` لحساب الجذر
// التربيعي، مثل `v.sqrt()`.


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

// قم بتطبيع المتجه (Normalize a vector) بحساب مقداره (magnitude) وقسمة جميع إحداثياته
// على هذا المقدار (magnitude).


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

// استخدم `main` التالي لاختبار عملك.

fn main() {
    println!("مقدار المتجه الواحد: {}", magnitude(&[0.0, 1.0, 0.0]));

    let mut v = [1.0, 2.0, 9.0];
    println!("مقدار {v:?}: {}", magnitude(&v));
    normalize(&mut v);
    println!("مقدار {v:?} بعد التطبيع: {}", magnitude(&v));
}