Krita Source Code Documentation
Loading...
Searching...
No Matches
histogramdockerwidget.cpp File Reference
#include "histogramdockerwidget.h"
#include <QThread>
#include <limits>
#include <algorithm>
#include <QTime>
#include <QPainter>
#include <QPainterPath>
#include <functional>
#include "KoChannelInfo.h"
#include "KisViewManager.h"
#include "kis_canvas2.h"

Go to the source code of this file.

Functions

QMap< float, float > calculateLinearGridLines (int width, qreal maximumValue)
 
QMap< float, float > calculateLogGridLines (int width, qreal maximumValue)
 

Function Documentation

◆ calculateLinearGridLines()

QMap< float, float > calculateLinearGridLines ( int width,
qreal maximumValue )

Definition at line 103 of file histogramdockerwidget.cpp.

104{
105 float gridValue = 0.25;
106 float gridWidthLength = width / (maximumValue / gridValue);
107 while(gridWidthLength < 25) {
108 gridValue *= 2;
109 gridWidthLength = width / (maximumValue / gridValue);
110 }
111 QMap<float, float> gridLines;
112 for (float i = 0; i < float(width); i+=gridWidthLength) {
113 gridLines.insert((i/gridWidthLength)*gridValue, i);
114 }
115 return gridLines;
116}

◆ calculateLogGridLines()

QMap< float, float > calculateLogGridLines ( int width,
qreal maximumValue )

Definition at line 74 of file histogramdockerwidget.cpp.

74 {
75 int power = 1;
76 QList<float> mainLines = {0.0, 0.25, 0.5, 0.75, 1.0};
77 while (mainLines.last() < (maximumValue)) {
78 qreal mainLine = powf(10, power);
79 mainLines.append(mainLine * 0.25);
80 mainLines.append(mainLine * 0.5);
81 mainLines.append(mainLine * 0.75);
82 mainLines.append(mainLine);
83
84 power += 1;
85 }
86 while (mainLines.last() > maximumValue) {
87 mainLines.removeLast();
88 }
89 mainLines.append(maximumValue);
90
91 QMap<float, float> gridLines;
92 Q_FOREACH(float mainLine, mainLines) {
93 if (qFuzzyCompare(mainLine, 0.f)) {
94 gridLines.insert(0.0, 0.0);
95 } else {
96 gridLines.insert(mainLine, std::log10(mainLine*10)*0.1*(width/(std::log10(mainLines.last()*10)*0.1)));
97 }
98 }
99
100 return gridLines;
101}
static bool qFuzzyCompare(half p1, half p2)

References qFuzzyCompare().