summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: fcf19c77058b5be8f712b1b45a53b968856b3aa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use particle_system::{Particle, ParticleSystem, Point, Vector};

mod particle_system;

fn main() {
    let dt = 0.01;
    let mut system = ParticleSystem {
        particles: vec![Particle::new(Point::origin(), 1.0)],
        t: 0.0,
    };

    let gravity = -9.8 * Vector::y();

    for i in 0..3 {
        println!("Iteration #{i}");
        for particle in &mut system.particles {
            particle.reset_force();
        }

        for particle in &mut system.particles {
            particle.apply_force(gravity);
        }

        system.euler_step(dt);

        println!("{:?}", system);
    }
}