summaryrefslogtreecommitdiffstats
path: root/src/charts/axis/valueaxis/chartvalueaxisy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/axis/valueaxis/chartvalueaxisy.cpp')
-rw-r--r--src/charts/axis/valueaxis/chartvalueaxisy.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/charts/axis/valueaxis/chartvalueaxisy.cpp b/src/charts/axis/valueaxis/chartvalueaxisy.cpp
index c4868fc2..3ffeddf9 100644
--- a/src/charts/axis/valueaxis/chartvalueaxisy.cpp
+++ b/src/charts/axis/valueaxis/chartvalueaxisy.cpp
@@ -76,22 +76,21 @@ QVector<qreal> ChartValueAxisY::calculateLayout() const
return points;
} else {
const qreal interval = m_axis->tickInterval();
- qreal value = m_axis->tickAnchor();
+ const qreal anchor = m_axis->tickAnchor();
const qreal maxValue = max();
const qreal minValue = min();
- // Find the first major tick right after the min of range
- if (value > minValue)
- value = value - int((value - minValue) / interval) * interval;
- else
- value = value + qCeil((minValue - value) / interval) * interval;
+ // Find the first major tick right after the min of the range
+ const qreal ticksFromAnchor = (anchor - minValue) / interval;
+ const qreal firstMajorTick = anchor - std::floor(ticksFromAnchor) * interval;
const QRectF &gridRect = gridGeometry();
const qreal deltaY = gridRect.height() / (maxValue - minValue);
QVector<qreal> points;
const qreal bottomPos = gridRect.bottom();
- while (value <= maxValue || qFuzzyCompare(value, maxValue)) {
+ qreal value = firstMajorTick;
+ while (value <= maxValue) {
points << (value - minValue) * -deltaY + bottomPos;
value += interval;
}