use better heuristics to avoid zero plot ranges
This commit is contained in:
@ -324,16 +324,26 @@ void ChartViewer::reset_zoom()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// avoid (nearly) empty ranges
|
// avoid (nearly) empty ranges
|
||||||
double deltax = fabs((xmax - xmin) / ((xmax == 0.0) ? 1.0 : xmax));
|
double deltax = xmax - xmin;
|
||||||
if (deltax < 1.0e-10) {
|
if ((deltax / ((xmax == 0.0) ? 1.0 : xmax)) < 1.0e-10) {
|
||||||
xmin -= 100.0*deltax;
|
if ((xmin == 0.0) || (xmax == 0.0)) {
|
||||||
xmax += 100.0*deltax;
|
xmin = -0.025;
|
||||||
|
xmax = 0.025;
|
||||||
|
} else {
|
||||||
|
xmin -= 0.025 * fabs(xmin);
|
||||||
|
xmax += 0.025 * fabs(xmax);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double deltay = fabs((ymax - ymin) / ((ymax == 0.0) ? 1.0 : ymax));
|
double deltay = ymax - ymin;
|
||||||
if (deltay < 1.0e-10) {
|
if ((deltay / ((ymax == 0.0) ? 1.0 : ymax)) < 1.0e-10) {
|
||||||
ymin -= 100.0*deltay;
|
if ((ymin == 0.0) || (ymax == 0.0)) {
|
||||||
ymax += 100.0*deltay;
|
ymin = -0.025;
|
||||||
|
ymax = 0.025;
|
||||||
|
} else {
|
||||||
|
ymin -= 0.025 * fabs(ymin);
|
||||||
|
ymax += 0.025 * fabs(ymax);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
xaxis->setRange(xmin, xmax);
|
xaxis->setRange(xmin, xmax);
|
||||||
|
|||||||
Reference in New Issue
Block a user