@@ -298,11 +298,11 @@ ExitStatus App::Application::run() {
298298
299299 if (parser.compile (func_str, expression)) {
300300 // grid parameters
301- const double x_min = -canvas_sz.x / ( 2 * zoom) ;
302- const double x_max = canvas_sz.x / ( 2 * zoom) ;
303- const double y_min = -canvas_sz.y / ( 2 * zoom) ;
304- const double y_max = canvas_sz.y / ( 2 * zoom) ;
305-
301+ const double x_min = ( -canvas_sz.x * 0 . 5f - originOffset. x ) / zoom ;
302+ const double x_max = ( canvas_sz.x * 0 . 5f - originOffset. x ) / zoom ;
303+ const double y_min = ( -canvas_sz.y * 0 . 5f + originOffset. y ) / zoom ;
304+ const double y_max = ( canvas_sz.y * 0 . 5f + originOffset. y ) / zoom ;
305+
306306 // adaptive step size with performance limit
307307 const double step = std::max (0.025 , 1.5 / zoom);
308308 const ImU32 inequality_color = IM_COL32 (100 , 150 , 255 , 180 );
@@ -380,10 +380,10 @@ ExitStatus App::Application::run() {
380380
381381 if (compile_ok) {
382382 // grid parameters
383- const double x_min = -canvas_sz.x / ( 2 * zoom) ;
384- const double x_max = canvas_sz.x / ( 2 * zoom) ;
385- const double y_min = -canvas_sz.y / ( 2 * zoom) ;
386- const double y_max = canvas_sz.y / ( 2 * zoom) ;
383+ const double x_min = ( -canvas_sz.x * 0 . 5f - originOffset. x ) / zoom ;
384+ const double x_max = ( canvas_sz.x * 0 . 5f - originOffset. x ) / zoom ;
385+ const double y_min = ( -canvas_sz.y * 0 . 5f + originOffset. y ) / zoom ;
386+ const double y_max = ( canvas_sz.y * 0 . 5f + originOffset. y ) / zoom ;
387387 const double step = std::max (0.008 , 1.0 / zoom); // dynamic step based on zoom level
388388
389389 const ImU32 implicit_color = IM_COL32 (64 , 199 , 128 , 255 );
0 commit comments