From 5419b9dd20b3688751bc899a3879aeca7d33cbc0 Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Fri, 6 Jul 2018 07:18:42 +0200 Subject: [PATCH] Minor update to drawing of histogram After some pixel peeping I made sure the histogram lines stay within the drawing area completely --- rtgui/histogrampanel.cc | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index 44fd40686..c2a584368 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -28,6 +28,7 @@ #include "../rtengine/color.h" #include "../rtengine/opthelper.h" #include "../rtengine/iccstore.h" + using namespace rtengine; extern Options options; @@ -953,23 +954,20 @@ void HistogramArea::drawCurve(Cairo::RefPtr &cr, scale = scale <= 0.f ? 0.001f : scale; // avoid division by zero and negative values for (int i = 0; i < 256; i++) { - double val = data[i] * (double)(vsize - 2) / scale; - + double val = data[i] * (double)vsize / scale; + if (drawMode > 0) { // scale y for single and double log-scale val = scalingFunctionLog ((double)vsize, val); } - - if (val > vsize - 1) { - val = vsize - 1; - } - + double iscaled = i; if (drawMode == 2) { // scale x for double log-scale - iscaled = scalingFunctionLog (256.0, (double)i); + iscaled = scalingFunctionLog (255.0, (double)i); } double posX = (iscaled / 255.0) * (hsize - 1); - double posY = vsize - 1 - val; + double posY = vsize - 2 + val * (4 - vsize) / vsize; + cr->line_to (posX, posY); }