Function collision_final_velocities_1d
pub fn collision_final_velocities_1d(
mass_a: f64,
velocity_a: f64,
mass_b: f64,
velocity_b: f64,
coefficient_of_restitution: f64,
) -> Option<(f64, f64)>Expand description
Computes the final velocities of a one-dimensional collision from masses, initial velocities, and a coefficient of restitution.
Formulas:
v_a' = (m_a*v_a + m_b*v_b - m_b*e*(v_a - v_b)) / (m_a + m_b)v_b' = (m_a*v_a + m_b*v_b + m_a*e*(v_a - v_b)) / (m_a + m_b)
ยงExamples
use use_collision::collision_final_velocities_1d;
let (final_a, final_b) = collision_final_velocities_1d(1.0, 1.0, 1.0, -1.0, 1.0).unwrap();
assert!((final_a + 1.0).abs() < 1.0e-12);
assert!((final_b - 1.0).abs() < 1.0e-12);