use zmatrix::physics::basic::*;
use std::time::Duration;
fn main() {
println!("=== 新增物理量运算关系示例 ===\n");
println!("1. 能量 ÷ 时间 = 功率");
let energy = Energy::from_joule(1000.0); let time = Duration::from_secs(10); let power: Power = energy / time; println!(" 1000 J ÷ 10 s = {} W", power.as_watt());
println!(" 验证: {} W × 10 s = {} J\n", power.as_watt(), (power * time).as_joule());
println!("2. 力矩 ÷ 距离 = 力");
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());
println!(" 验证: {} N × 5 m = {} J\n", force.as_newton(), (force * distance).as_joule());
println!("3. 速度 ÷ 加速度 = 时间");
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));
println!(" 验证: 4 m/s² × {} s = {} m/s\n", time_delta_to_secs_f64(&time), (acceleration * time).as_m_per_sec());
println!("4. 距离 ÷ 速度 = 时间");
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));
println!(" 验证: 25 m/s × {} s = {} m\n", time_delta_to_secs_f64(&time), (velocity * time).as_m());
println!("5. 功率 ÷ 力 = 速度");
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());
println!(" 验证: 15 N × {} m/s = {} W\n", velocity.as_m_per_sec(), (force * velocity).as_watt());
println!("6. 功率 ÷ 速度 = 力");
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());
println!(" 验证: {} N × 16 m/s = {} W\n", force.as_newton(), (force * velocity).as_watt());
println!("7. 角速度 ÷ 角加速度 = 时间");
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));
println!(" 验证: 3 rad/s² × {} s = {} rad/s\n", time_delta_to_secs_f64(&time), (alpha * time).as_rad_per_second());
println!("=== 实际应用示例 ===");
println!("\n汽车制动距离计算:");
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());
println!(" 减速度: {} m/s²", deceleration.as_m_per_s2());
println!(" 制动时间: {:.2} s", time_delta_to_secs_f64(&braking_time));
println!(" 制动距离: {:.2} m", braking_distance.as_m());
println!("\n电机功率计算:");
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());
println!(" 角速度: {} rad/s", angular_velocity.as_rad_per_second());
println!(" 功率: {:.1} W ({:.2} kW)", power.as_watt(), power.as_kilo_watt());
println!("\n杠杆原理验证:");
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());
println!(" 力臂: {} m", lever_arm.as_m());
println!(" 功: {} J", energy.as_joule());
println!(" 验证力: {} N", calculated_force.as_newton());
println!("\n=== 示例完成 ===");
}