From ce0f64df2ef032d1a6a453569689dce4fe83cb04 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Mon, 4 Jan 2021 10:37:28 -0800 Subject: stats: fix line segment intersection math Linear algebra class was a while ago, but somehow this does look more logical to me. Signed-off-by: Dirk Hohndel --- stats/statsview.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'stats/statsview.cpp') diff --git a/stats/statsview.cpp b/stats/statsview.cpp index 6dd858e96..817f8001d 100644 --- a/stats/statsview.cpp +++ b/stats/statsview.cpp @@ -686,9 +686,9 @@ void StatsView::addLinearRegression(double a, double b, double minX, double maxX // but owing to floating point imprecision, let's test again. if ((y1 < minY || y1 > maxY || y2 < minY || y2 > maxY) && fabs(a) > 0.0001) { // Intersections with y = minY and y = maxY lines - double intersect_x1 = minY / a - b; - double intersect_x2 = maxY / a - b; - if (intersect_x1 < intersect_x2) + double intersect_x1 = (minY - b) / a; + double intersect_x2 = (maxY - b) / a; + if (intersect_x1 > intersect_x2) std::swap(intersect_x1, intersect_x2); minX = std::max(minX, intersect_x1); maxX = std::min(maxX, intersect_x2); -- cgit v1.2.3-70-g09d2