diff --git a/src/main.rs b/src/main.rs index 1d7881b..55c7232 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,11 +2,11 @@ use image::{ImageBuffer, Rgba, RgbaImage}; use std::f64::consts::PI; use std::fs; -fn chladni(x: f64, y: f64, n: f64, m: f64) -> f64 { +fn chladni(x: f64, y: f64, n: f64, m: f64, eps: f64) -> f64 { (n * PI * x).cos() * (m * PI * y).cos() - (m * PI * x).cos() * (n * PI * y).cos() } -fn generate_png(n: u32, m: u32, width: u32, height: u32) { +fn generate_png(n: u32, m: u32, width: u32, height: u32, eps: f64) { let mut img: RgbaImage = ImageBuffer::new(width, height); for (x, y, pixel) in img.enumerate_pixels_mut() { @@ -14,7 +14,7 @@ fn generate_png(n: u32, m: u32, width: u32, height: u32) { let xf = (x as f64 / width as f64) * 2.0 - 1.0; let yf = (y as f64 / height as f64) * 2.0 - 1.0; - let val = chladni(xf, yf, n as f64, m as f64); + let val = chladni(xf, yf, n as f64, m as f64, eps); let intensity = val.abs(); let bright = (((0.08 - intensity).max(0.0) / 0.08) * 255.0) as u8; @@ -22,7 +22,7 @@ fn generate_png(n: u32, m: u32, width: u32, height: u32) { // *pixel = Rgb([brigh, brigh, brigh]); } - let filename = format!("out/chladni_{}_{}.png", n, m); + let filename = format!("out/chladni_{}_{}_{}.png", n, m, eps); img.save(&filename).unwrap(); println!("{}", filename); } @@ -30,14 +30,15 @@ fn generate_png(n: u32, m: u32, width: u32, height: u32) { fn main() { let width = 1000; let height = 1000; - let max_n = 6; - let max_m = 6; + let max_n = 5; + let max_m = 5; fs::create_dir_all("out").expect("Erreur"); for n in 1..max_n { for m in 1..max_m { - generate_png(n, m, width, height); + generate_png(n, m, width, height, -1.0); + generate_png(n, m, width, height, 1.0); } } }