1- use peroxide:: fuga:: * ;
21use anyhow:: Result ;
2+ use peroxide:: fuga:: * ;
33
44fn main ( ) -> Result < ( ) > {
55 // 1. Define the B-spline
@@ -30,14 +30,18 @@ fn main() -> Result<()> {
3030 // 3. Perform numerical integration using self-contained Gauss-Legendre quadrature
3131 let t_start = 0f64 ;
3232 let t_end = 4f64 ;
33-
33+
3434 //let area = gauss_legendre_integrate(
3535 // |t| integrand(t, &spline, &deriv_spline),
3636 // t_start,
3737 // t_end,
3838 // 64,
3939 //);
40- let area = integrate ( |t| integrand ( t, & spline, & deriv_spline) , ( t_start, t_end) , G7K15R ( 1e-4 , 20 ) ) ;
40+ let area = integrate (
41+ |t| integrand ( t, & spline, & deriv_spline) ,
42+ ( t_start, t_end) ,
43+ G7K15R ( 1e-4 , 20 ) ,
44+ ) ;
4145
4246 // 4. Print the result
4347 println ! ( "The area under the B-spline curve (∫y dx) is: {}" , area) ;
@@ -47,21 +51,24 @@ fn main() -> Result<()> {
4751 {
4852 let t = linspace ( t_start, t_end, 200 ) ;
4953 let ( x, y) : ( Vec < f64 > , Vec < f64 > ) = spline. eval_vec ( & t) . into_iter ( ) . unzip ( ) ;
50-
54+
5155 let mut plt = Plot2D :: new ( ) ;
5256 plt. set_title ( & format ! ( "Original B-Spline (Area approx. {:.4})" , area) )
5357 . set_xlabel ( "x" )
5458 . set_ylabel ( "y" )
5559 . insert_pair ( ( x. clone ( ) , y. clone ( ) ) )
56- . insert_pair ( ( control_points. iter ( ) . map ( |p| p[ 0 ] ) . collect ( ) , control_points. iter ( ) . map ( |p| p[ 1 ] ) . collect ( ) ) )
60+ . insert_pair ( (
61+ control_points. iter ( ) . map ( |p| p[ 0 ] ) . collect ( ) ,
62+ control_points. iter ( ) . map ( |p| p[ 1 ] ) . collect ( ) ,
63+ ) )
5764 . set_plot_type ( vec ! [ ( 0 , PlotType :: Line ) , ( 1 , PlotType :: Scatter ) ] )
5865 . set_color ( vec ! [ ( 0 , "blue" ) , ( 1 , "red" ) ] )
5966 . set_legend ( vec ! [ "Spline" , "Control Points" ] )
6067 . set_style ( PlotStyle :: Nature )
6168 . set_path ( "example_data/bspline_with_area.png" )
6269 . set_dpi ( 600 )
6370 . savefig ( ) ?;
64-
71+
6572 println ! ( "Generated plot: example_data/bspline_with_area.png" ) ;
6673 }
6774
0 commit comments