Skip to main content

gravitational_force

Function gravitational_force 

Source
pub fn gravitational_force(
    mass_a: f64,
    mass_b: f64,
    distance: f64,
) -> Option<f64>
Expand description

Computes the gravitational attraction between two point masses.

Formula: F = G * m1 * m2 / r^2

Returns None when either mass is negative, when distance is less than or equal to zero, or when the computed result is not finite.

ยงExamples

use use_gravity::{GRAVITATIONAL_CONSTANT, gravitational_force};

assert_eq!(gravitational_force(1.0, 1.0, 1.0), Some(GRAVITATIONAL_CONSTANT));
Examples found in repository?
examples/basic_usage.rs (line 8)
3fn main() -> Result<(), &'static str> {
4    let earth = GravityBody::new(5.972e24, 6.371e6).ok_or("invalid Earth body")?;
5    let surface_gravity = earth
6        .surface_gravity()
7        .ok_or("invalid surface gravity calculation")?;
8    let force = gravitational_force(1.0, 1.0, 1.0).ok_or("invalid force calculation")?;
9    let velocity = escape_velocity(5.972e24, 6.371e6).ok_or("invalid escape calculation")?;
10
11    assert!((force - GRAVITATIONAL_CONSTANT).abs() < f64::EPSILON);
12    assert!(surface_gravity > 9.8);
13    assert!(velocity > 11_000.0);
14
15    Ok(())
16}