example_physics/
example_physics.rs1use chrono::TimeDelta;
2use zmatrix::physics::basic::*;
3
4fn main(){
5 let distance = Distance::from_m(1001.0);
6 println!("{:?}", distance.as_km());
7 println!("{:?}", distance.as_light_year());
9 let velocity = Velocity::from_m_per_sec(100.0);
12 println!("{:?}", velocity.as_km_per_h());
13 calculate();
16 examples_vector3();
17}
18
19fn calculate() {
20 let distance = Distance::from_m(1000.0);
21 let time = TimeDelta::seconds(10);
22 let velocity: Velocity = distance / time;
23 let acc: Acceleration = velocity / time;
24 println!("速度: {} m/s, 加速度: {} m/s²", velocity.as_m_per_sec(), acc.as_m_per_s2());
25
26 let ang: Angular = Angular::from_deg(180.0);
27 let time = TimeDelta::seconds(10);
28 let omg: AngularVelocity = ang / time;
29 let angular_accel: AngularAcceleration = omg / time;
30 println!(
31 "角速度: {} rad/s, 角加速度: {} rad/s²",
32 omg.as_rad_per_second(),
33 angular_accel.as_rad_per_second2()
34 );
35
36 let dis: Distance = Distance::from_m(1000.0);
37 let area: Area = dis * dis;
38 println!("面积: {} m²", area.as_m2());
39}
40
41fn examples_vector3(){
42 let pos_vector: Vector3<Distance> = Vector3::new(
43 Distance::from_m(1.0),
44 Distance::from_m(3.0),
45 Distance::from_m(5.0)
46 );
47 println!(
48 "位置向量: ({}, {}, {}) m",
49 pos_vector.x.as_m(),
50 pos_vector.y.as_m(),
51 pos_vector.z.as_m()
52 );
53}