fix lorentz factor
This commit is contained in:
parent
cc67cf961a
commit
dd2e596f5c
|
@ -656,13 +656,13 @@ fn update_speedometer(
|
||||||
let speedometer_split = 5_000.0;
|
let speedometer_split = 5_000.0;
|
||||||
if let Ok(mut speedometer) = q_speedometer.get_single_mut() {
|
if let Ok(mut speedometer) = q_speedometer.get_single_mut() {
|
||||||
let custom_c = speedometer_split;
|
let custom_c = speedometer_split;
|
||||||
let fraction = nature::lorenz_factor_custom_c((custom_c - speed).clamp(0.0, custom_c), custom_c).clamp(0.0, 1.0) as f32;
|
let fraction = nature::inverse_lorentz_factor_custom_c((custom_c - speed).clamp(0.0, custom_c), custom_c).clamp(0.0, 1.0) as f32;
|
||||||
let wid = (fraction * SPEEDOMETER_WIDTH).clamp(0.0, 100.0);
|
let wid = (fraction * SPEEDOMETER_WIDTH).clamp(0.0, 100.0);
|
||||||
speedometer.width = Val::Vw(wid);
|
speedometer.width = Val::Vw(wid);
|
||||||
}
|
}
|
||||||
if let Ok(mut speedometer2) = q_speedometer2.get_single_mut() {
|
if let Ok(mut speedometer2) = q_speedometer2.get_single_mut() {
|
||||||
let custom_c = nature::C - speedometer_split;
|
let custom_c = nature::C - speedometer_split;
|
||||||
let fraction = nature::lorenz_factor_custom_c((custom_c - speed + speedometer_split).clamp(0.0, custom_c), custom_c).clamp(0.0, 1.0) as f32;
|
let fraction = nature::inverse_lorentz_factor_custom_c((custom_c - speed + speedometer_split).clamp(0.0, custom_c), custom_c).clamp(0.0, 1.0) as f32;
|
||||||
let wid = (fraction * SPEEDOMETER_WIDTH).clamp(0.0, 100.0);
|
let wid = (fraction * SPEEDOMETER_WIDTH).clamp(0.0, 100.0);
|
||||||
speedometer2.width = Val::Vw(wid);
|
speedometer2.width = Val::Vw(wid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,12 +138,20 @@ pub fn readable_speed(speed: f64) -> String {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn lorenz_factor(speed: f64) -> f64 {
|
pub fn lorentz_factor(speed: f64) -> f64 {
|
||||||
(1.0 - (speed.powf(2.0) / C.powf(2.0))).sqrt()
|
(1.0 - (speed.powf(2.0) / C.powf(2.0))).powf(-0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn lorenz_factor_custom_c(speed: f64, c: f64) -> f64 {
|
pub fn lorentz_factor_custom_c(speed: f64, c: f64) -> f64 {
|
||||||
(1.0 - (speed.powf(2.0) / c.powf(2.0))).sqrt()
|
(1.0 - (speed.powf(2.0) / c.powf(2.0))).powf(-0.5)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn inverse_lorentz_factor(speed: f64) -> f64 {
|
||||||
|
(1.0 - (speed.powf(2.0) / C.powf(2.0))).powf(0.5)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn inverse_lorentz_factor_custom_c(speed: f64, c: f64) -> f64 {
|
||||||
|
(1.0 - (speed.powf(2.0) / c.powf(2.0))).powf(0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn simple_orbital_period(mass: f64, distance: f64) -> f64 {
|
pub fn simple_orbital_period(mass: f64, distance: f64) -> f64 {
|
||||||
|
|
Loading…
Reference in a new issue