From 70afc5a7d871919776a64782e8b93404e6b0defd Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 15 Dec 2024 13:17:43 +0100 Subject: feat!: add raylib rendering --- src/ppm.rs | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 src/ppm.rs (limited to 'src/ppm.rs') diff --git a/src/ppm.rs b/src/ppm.rs deleted file mode 100644 index 01cdebb..0000000 --- a/src/ppm.rs +++ /dev/null @@ -1,41 +0,0 @@ -use std::{fs::File, io::Write, path::PathBuf}; - -use crate::particle_system::{Particle, Vector, N, Scalar}; - -pub struct PPM { - pub prefix: PathBuf, - pub width: usize, - pub height: usize, - // pixels_per_unit: usize, -} - -impl PPM { - fn render_particles(&self, particles: &Vec) -> String { - let mut s = format!("P3\n{} {}\n255\n", self.width, self.height); - let white = "255 255 255 "; - let black = "0 0 0 "; - - for pixel_row in 0..self.height { - for pixel_col in 0..self.width { - let point = Vector::new(pixel_col as Scalar, (pixel_row as Scalar) * -1.0) - + Vector::new(self.width as Scalar / -2.0, self.height as Scalar / 2.0); - let color = match particles.iter().any(|p| { - (p.position - point).coords.norm() <= (p.mass).powf(1.0 / (N as f64)) - }) { - true => black, - false => white, - }; - s += color; - } - } - s - } - - pub fn save_frame(&self, particles: &Vec, time: Scalar) { - let file_name = format!("frame-{:08.3}", time); - let path = self.prefix.join(file_name); - let mut file = File::create(path).unwrap(); - let data = self.render_particles(particles); - file.write(data.as_bytes()).unwrap(); - } -} -- cgit v1.2.3