diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-03-21 10:05:30 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-03-21 10:05:30 +0200 |
commit | ba792163ba0ea5a013f7c6d7fe8530661e22721e (patch) | |
tree | dfd7c9585931c1e69e942e0c20637069bf1874b2 /src | |
parent | e5bdddebc98a4b7101a920ef8d3fce7e9f78b8fb (diff) |
Fix int-qreal rounding errors in axislayout calculations
Task-number: QTRD-1930
Reviewed-by: Mika Salmela
Diffstat (limited to 'src')
-rw-r--r-- | src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp | 2 | ||||
-rw-r--r-- | src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp | 2 | ||||
-rw-r--r-- | src/axis/datetimeaxis/chartdatetimeaxisx.cpp | 8 | ||||
-rw-r--r-- | src/axis/datetimeaxis/chartdatetimeaxisy.cpp | 8 | ||||
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisx.cpp | 7 | ||||
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisy.cpp | 7 |
6 files changed, 14 insertions, 20 deletions
diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp b/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp index b4b296ec..8d86b120 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp @@ -60,7 +60,7 @@ QVector<qreal> ChartBarCategoryAxisX::calculateLayout() const points.resize(count + 2); for (int i = 0; i < count + 2; ++i) - points[i] = offset + (i * delta) + gridRect.left(); + points[i] = offset + (qreal(i) * delta) + gridRect.left(); return points; } diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp b/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp index e35aea69..0ca8116c 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp @@ -60,7 +60,7 @@ QVector<qreal> ChartBarCategoryAxisY::calculateLayout() const points.resize(count + 2); for (int i = 0; i < count + 2; ++i) - points[i] = gridRect.bottom() - (i * delta) - offset; + points[i] = gridRect.bottom() - (qreal(i) * delta) - offset; return points; } diff --git a/src/axis/datetimeaxis/chartdatetimeaxisx.cpp b/src/axis/datetimeaxis/chartdatetimeaxisx.cpp index 591daf94..39fc3ba7 100644 --- a/src/axis/datetimeaxis/chartdatetimeaxisx.cpp +++ b/src/axis/datetimeaxis/chartdatetimeaxisx.cpp @@ -50,11 +50,9 @@ QVector<qreal> ChartDateTimeAxisX::calculateLayout() const QVector<qreal> points; points.resize(tickCount); const QRectF &gridRect = gridGeometry(); - const qreal deltaX = gridRect.width() / (tickCount - 1); - for (int i = 0; i < tickCount; ++i) { - int x = i * deltaX + gridRect.left(); - points[i] = x; - } + const qreal deltaX = gridRect.width() / (qreal(tickCount) - 1.0); + for (int i = 0; i < tickCount; ++i) + points[i] = qreal(i) * deltaX + gridRect.left(); return points; } diff --git a/src/axis/datetimeaxis/chartdatetimeaxisy.cpp b/src/axis/datetimeaxis/chartdatetimeaxisy.cpp index 8b27d1c4..a534617f 100644 --- a/src/axis/datetimeaxis/chartdatetimeaxisy.cpp +++ b/src/axis/datetimeaxis/chartdatetimeaxisy.cpp @@ -50,11 +50,9 @@ QVector<qreal> ChartDateTimeAxisY::calculateLayout() const QVector<qreal> points; points.resize(tickCount); const QRectF &gridRect = gridGeometry(); - const qreal deltaY = gridRect.height() / (tickCount - 1); - for (int i = 0; i < tickCount; ++i) { - int y = i * -deltaY + gridRect.bottom(); - points[i] = y; - } + const qreal deltaY = gridRect.height() / (qreal(tickCount) - 1.0); + for (int i = 0; i < tickCount; ++i) + points[i] = qreal(i) * -deltaY + gridRect.bottom(); return points; } diff --git a/src/axis/valueaxis/chartvalueaxisx.cpp b/src/axis/valueaxis/chartvalueaxisx.cpp index ccf49254..a084ac32 100644 --- a/src/axis/valueaxis/chartvalueaxisx.cpp +++ b/src/axis/valueaxis/chartvalueaxisx.cpp @@ -53,10 +53,9 @@ QVector<qreal> ChartValueAxisX::calculateLayout() const points.resize(tickCount); const QRectF &gridRect = gridGeometry(); - const qreal deltaX = gridRect.width() / (tickCount - 1); - for (int i = 0; i < tickCount; ++i) { - points[i] = i * deltaX + gridRect.left(); - } + const qreal deltaX = gridRect.width() / (qreal(tickCount) - 1.0); + for (int i = 0; i < tickCount; ++i) + points[i] = qreal(i) * deltaX + gridRect.left(); return points; } diff --git a/src/axis/valueaxis/chartvalueaxisy.cpp b/src/axis/valueaxis/chartvalueaxisy.cpp index 848d4aeb..14b2d207 100644 --- a/src/axis/valueaxis/chartvalueaxisy.cpp +++ b/src/axis/valueaxis/chartvalueaxisy.cpp @@ -53,10 +53,9 @@ QVector<qreal> ChartValueAxisY::calculateLayout() const const QRectF &gridRect = gridGeometry(); - const qreal deltaY = gridRect.height() / (tickCount - 1); - for (int i = 0; i < tickCount; ++i) { - points[i] = i * -deltaY + gridRect.bottom(); - } + const qreal deltaY = gridRect.height() / (qreal(tickCount) - 1.0); + for (int i = 0; i < tickCount; ++i) + points[i] = qreal(i) * -deltaY + gridRect.bottom(); return points; } |