2个版本
0.1.1 | 2023年4月10日 |
---|---|
0.1.0 | 2023年4月5日 |
#655 在 科学
每月 22次下载
60KB
797 行
Rustamath MKS
Rustamath MKS 是一个Rust库,支持MKS单位制和MKS中的物理常数。
以下是一个演示基本使用的示例,可以在源目录中使用 cargo test simple_pendulum -- --nocapture
运行。
#[test]
fn simple_pendulum() {
// simple pendulum period formula is `T = 2*Pi*sqrt(L/g)`
let pendulum_len = MksVal::new(6.0, f64::FOOT, FOOT_UNIT);
let g = MksVal::new(1.0, f64::GRAV_ACCEL, GRAV_ACCEL_UNIT);
println!("Pendulum length is {:.2} {}", pendulum_len.val, pendulum_len.unit);
println!("G on Earth is {:.2} {}", g.val, g.unit);
assert_eq!(pendulum_len.unit.to_string(), "[m]");
assert_eq!(g.unit.to_string(), "[m / s^2]");
let pendulum_len_over_accel = pendulum_len / g;
assert!(pendulum_len_over_accel.unit == TIME_UNIT * TIME_UNIT);
let pi_x_2 = MksVal::new_scalar(2.0 * std::f64::consts::PI);
let period = pi_x_2 * pendulum_len_over_accel.sqrt();
assert!(period.unit == TIME_UNIT);
println!("Pendulum period is {:.2} {}", period.val, period.unit);
assert_eq!(period.unit.to_string(), "[s]");
}
输出是
Pendulum length is 1.83 [m]
G on Earth is 9.81 [m / s^2]
Pendulum period is 2.71 [s]
(使用任何在线计算器检查结果,例如 https://www.omnicalculator.com/physics/simple-pendulum)
此包提供
- 物理常数,例如光速
c
和万有引力常数G
。这些值在标准MKS单位制(米、千克、秒、安培)中可用。例如:let half_speed_of_light = f64::SPEED_OF_LIGHT / 2.0;
。 - MKS单位类型,例如:
assert_eq!(SPEED_OF_LIGHT_UNIT * TIME_UNIT, LIGHT_YEAR_UNIT);
。 - 将单位作为字符串打印,例如:
assert_eq!(&SPEED_OF_LIGHT_UNIT.to_string(), "[m / s]");
。 - 带有单位的值,例如:
let pendulum_len = MksVal::new(6.0, f64::FOOT, FOOT_UNIT);
。 - 值操作,例如:
let pendulum_len_over_accel = pendulum_len / g;
。
依赖项
~27KB