diff --git a/src/func_plot.rs b/src/func_plot.rs index eecbe38..62f17e6 100644 --- a/src/func_plot.rs +++ b/src/func_plot.rs @@ -57,29 +57,32 @@ pub fn draw( fn integral_rectangles( min_x: f32, step: f32, num_interval: usize, func: &dyn Fn(f64) -> f64, ) -> (Vec<(f32, f32, f32)>, f32) { - let data2: Vec<(f32, f32, f32)> = (0..num_interval).map(|e| { - let x: f32 = ((e as f32) * step) + min_x; + let data2: Vec<(f32, f32, f32)> = (0..num_interval) + .map(|e| { + let x: f32 = ((e as f32) * step) + min_x; - let x2: f32 = match x > 0.1 { - true => x+step, - false => x-step, - }; + let x2: f32 = match x > 0.1 { + true => x + step, + false => x - step, + }; - let tmp1: f32 = func(x as f64) as f32; - let tmp2: f32 = func(x2 as f64) as f32; + let tmp1: f32 = func(x as f64) as f32; + let tmp2: f32 = func(x2 as f64) as f32; - let y: f32 = match tmp2.abs() > tmp1.abs() { - true => tmp1, - false => tmp2 - }; + let y: f32 = match tmp2.abs() > tmp1.abs() { + true => tmp1, + false => tmp2, + }; - // Add current rectangle's area to the total - if !y.is_nan() { - (x, x2, y) - } else { - (0.0, 0.0, 0.0) - } - }).filter(|ele| ele != &(0.0, 0.0, 0.0)).collect(); - let area: f32 = data2.iter().map(|(_, _, y)| y*step).sum(); // sum of all rectangles' areas + // Add current rectangle's area to the total + if !y.is_nan() { + (x, x2, y) + } else { + (0.0, 0.0, 0.0) + } + }) + .filter(|ele| ele != &(0.0, 0.0, 0.0)) + .collect(); + let area: f32 = data2.iter().map(|(_, _, y)| y * step).sum(); // sum of all rectangles' areas return (data2, area); }