summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/charts/domain/xydomain.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/charts/domain/xydomain.cpp b/src/charts/domain/xydomain.cpp
index 1e79de52..a4458f1f 100644
--- a/src/charts/domain/xydomain.cpp
+++ b/src/charts/domain/xydomain.cpp
@@ -154,8 +154,12 @@ void XYDomain::move(qreal dx, qreal dy)
QPointF XYDomain::calculateGeometryPoint(const QPointF &point, bool &ok) const
{
- const qreal deltaX = m_size.width() / (m_maxX - m_minX);
- const qreal deltaY = m_size.height() / (m_maxY - m_minY);
+ const qreal xd = m_maxX - m_minX;
+ const qreal yd = m_maxY - m_minY;
+ if (qFuzzyIsNull(xd) || qFuzzyIsNull(yd))
+ return QPointF();
+ const qreal deltaX = m_size.width() / xd;
+ const qreal deltaY = m_size.height() / yd;
qreal x = (point.x() - m_minX) * deltaX;
if (m_reverseX)
x = m_size.width() - x;
@@ -168,8 +172,12 @@ QPointF XYDomain::calculateGeometryPoint(const QPointF &point, bool &ok) const
QVector<QPointF> XYDomain::calculateGeometryPoints(const QVector<QPointF> &vector) const
{
- const qreal deltaX = m_size.width() / (m_maxX - m_minX);
- const qreal deltaY = m_size.height() / (m_maxY - m_minY);
+ const qreal xd = m_maxX - m_minX;
+ const qreal yd = m_maxY - m_minY;
+ if (qFuzzyIsNull(xd) || qFuzzyIsNull(yd))
+ return QVector<QPointF>();
+ const qreal deltaX = m_size.width() / xd;
+ const qreal deltaY = m_size.height() / yd;
QVector<QPointF> result;
result.resize(vector.count());
@@ -189,8 +197,12 @@ QVector<QPointF> XYDomain::calculateGeometryPoints(const QVector<QPointF> &vecto
QPointF XYDomain::calculateDomainPoint(const QPointF &point) const
{
- const qreal deltaX = m_size.width() / (m_maxX - m_minX);
- const qreal deltaY = m_size.height() / (m_maxY - m_minY);
+ const qreal xd = m_maxX - m_minX;
+ const qreal yd = m_maxY - m_minY;
+ if (qFuzzyIsNull(xd) || qFuzzyIsNull(yd))
+ return QPointF();
+ const qreal deltaX = m_size.width() / xd;
+ const qreal deltaY = m_size.height() / yd;
qreal x = m_reverseX ? (m_size.width() - point.x()) : point.x();
x /= deltaX;
x += m_minX;