diff options
Diffstat (limited to 'src/charts/axis/valueaxis/chartvalueaxisy.cpp')
-rw-r--r-- | src/charts/axis/valueaxis/chartvalueaxisy.cpp | 13 |
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; } |