diff options
Diffstat (limited to 'src/charts/axis/valueaxis/chartvalueaxisx.cpp')
-rw-r--r-- | src/charts/axis/valueaxis/chartvalueaxisx.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/charts/axis/valueaxis/chartvalueaxisx.cpp b/src/charts/axis/valueaxis/chartvalueaxisx.cpp index 3eac86e0..db943480 100644 --- a/src/charts/axis/valueaxis/chartvalueaxisx.cpp +++ b/src/charts/axis/valueaxis/chartvalueaxisx.cpp @@ -75,22 +75,21 @@ QVector<qreal> ChartValueAxisX::calculateLayout() const return points; } else { // QValueAxis::TicksDynamic 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 deltaX = gridRect.width() / (maxValue - minValue); QVector<qreal> points; const qreal leftPos = gridRect.left(); - while (value <= maxValue || qFuzzyCompare(value, maxValue)) { + qreal value = firstMajorTick; + while (value <= maxValue) { points << (value - minValue) * deltaX + leftPos; value += interval; } |