example_new_operations/
example_new_operations.rs1use zmatrix::physics::basic::*;
2use chrono::TimeDelta;
3
4fn main() {
5 println!("=== 新增物理量运算关系示例 ===\n");
6
7 println!("1. 能量 ÷ 时间 = 功率");
9 let energy = Energy::from_joule(1000.0); let time = TimeDelta::seconds(10); let power: Power = energy / time; println!(" 1000 J ÷ 10 s = {} W", power.as_watt());
13 println!(" 验证: {} W × 10 s = {} J\n", power.as_watt(), (power * time).as_joule());
14
15 println!("2. 力矩 ÷ 距离 = 力");
17 let torque = Torque::from_nm(50.0); let distance = Distance::from_m(5.0); let force: Force = torque / distance; println!(" 50 N·m ÷ 5 m = {} N", force.as_newton());
21 println!(" 验证: {} N × 5 m = {} J\n", force.as_newton(), (force * distance).as_joule());
22
23 println!("3. 速度 ÷ 加速度 = 时间");
25 let velocity = Velocity::from_m_per_sec(20.0); let acceleration = Acceleration::from_m_per_s2(4.0); let time = velocity / acceleration; println!(" 20 m/s ÷ 4 m/s² = {} s", time_delta_to_secs_f64(&time));
29 println!(" 验证: 4 m/s² × {} s = {} m/s\n", time_delta_to_secs_f64(&time), (acceleration * time).as_m_per_sec());
30
31 println!("4. 距离 ÷ 速度 = 时间");
33 let distance = Distance::from_m(200.0); let velocity = Velocity::from_m_per_sec(25.0); let time = distance / velocity; println!(" 200 m ÷ 25 m/s = {} s", time_delta_to_secs_f64(&time));
37 println!(" 验证: 25 m/s × {} s = {} m\n", time_delta_to_secs_f64(&time), (velocity * time).as_m());
38
39 println!("5. 功率 ÷ 力 = 速度");
41 let power = Power::from_watt(300.0); let force = Force::from_newton(15.0); let velocity: Velocity = power / force; println!(" 300 W ÷ 15 N = {} m/s", velocity.as_m_per_sec());
45 println!(" 验证: 15 N × {} m/s = {} W\n", velocity.as_m_per_sec(), (force * velocity).as_watt());
46
47 println!("6. 功率 ÷ 速度 = 力");
49 let power = Power::from_watt(400.0); let velocity = Velocity::from_m_per_sec(16.0); let force: Force = power / velocity; println!(" 400 W ÷ 16 m/s = {} N", force.as_newton());
53 println!(" 验证: {} N × 16 m/s = {} W\n", force.as_newton(), (force * velocity).as_watt());
54
55 println!("7. 角速度 ÷ 角加速度 = 时间");
57 let omega = AngularVelocity::from_rad_per_second(12.0); let alpha = AngularAcceleration::from_rad_per_second2(3.0); let time = omega / alpha; println!(" 12 rad/s ÷ 3 rad/s² = {} s", time_delta_to_secs_f64(&time));
61 println!(" 验证: 3 rad/s² × {} s = {} rad/s\n", time_delta_to_secs_f64(&time), (alpha * time).as_rad_per_second());
62
63 println!("=== 实际应用示例 ===");
65
66 println!("\n汽车制动距离计算:");
68 let initial_velocity = Velocity::from_km_per_h(60.0); let deceleration = Acceleration::from_m_per_s2(5.0); let braking_time = initial_velocity / deceleration; let braking_distance = initial_velocity * braking_time; println!(" 初始速度: {} km/h", initial_velocity.as_km_per_h());
73 println!(" 减速度: {} m/s²", deceleration.as_m_per_s2());
74 println!(" 制动时间: {:.2} s", time_delta_to_secs_f64(&braking_time));
75 println!(" 制动距离: {:.2} m", braking_distance.as_m());
76
77 println!("\n电机功率计算:");
79 let torque = Torque::from_nm(100.0); let angular_velocity = AngularVelocity::from_rad_per_second(50.0); let power: Power = torque * angular_velocity; println!(" 扭矩: {} N·m", torque.as_nm());
83 println!(" 角速度: {} rad/s", angular_velocity.as_rad_per_second());
84 println!(" 功率: {:.1} W ({:.2} kW)", power.as_watt(), power.as_kilo_watt());
85
86 println!("\n杠杆原理验证:");
88 let force = Force::from_newton(20.0); let lever_arm = Distance::from_m(3.0); let energy = force * lever_arm; let calculated_force: Force = energy / lever_arm; println!(" 力: {} N", force.as_newton());
93 println!(" 力臂: {} m", lever_arm.as_m());
94 println!(" 功: {} J", energy.as_joule());
95 println!(" 验证力: {} N", calculated_force.as_newton());
96
97 println!("\n=== 示例完成 ===");
98}