##// END OF EJS Templates
LogDomains: calculateDomainPoint implemented
Marek Rosa -
r2283:ed9af3142ed9
parent child
Show More
@@ -47,7 +47,7 public:
47 47 }
48 48
49 49 QLogValueAxis *axisX= new QLogValueAxis();
50 axisX->setBase(1.2);
50 axisX->setBase(2);
51 51 QLogValueAxis *axisY= new QLogValueAxis();
52 52 axisY->setBase(2);
53 53 foreach (QAbstractSeries *series, chart->series()) {
@@ -180,11 +180,14 QString QLogValueAxis::labelFormat() const
180 180 void QLogValueAxis::setBase(qreal base)
181 181 {
182 182 // check if base is correct
183 if (base <= 0 || qFuzzyCompare(base, 1))
183 if (qFuzzyCompare(base, 1))
184 184 return;
185 185
186 Q_D(QLogValueAxis);
187 d->m_base = base;
186 if (base > 0) {
187 Q_D(QLogValueAxis);
188 d->m_base = base;
189 emit d->baseChanged(base);
190 }
188 191 }
189 192
190 193 qreal QLogValueAxis::base() const
@@ -56,6 +56,9 class QLogValueAxisPrivate : public QAbstractAxisPrivate
56 56 void setRange(const QVariant &min, const QVariant &max);
57 57 int tickCount() const;
58 58
59 Q_SIGNALS:
60 void baseChanged(qreal base);
61
59 62 protected:
60 63 qreal m_min;
61 64 qreal m_max;
@@ -143,10 +143,12 QVector<QPointF> LogXLogYDomain::calculateGeometryPoints(const QList<QPointF>& v
143 143
144 144 QPointF LogXLogYDomain::calculateDomainPoint(const QPointF &point) const
145 145 {
146 const qreal deltaX = m_size.width() / (m_maxX - m_minX);
147 const qreal deltaY = m_size.height() / (m_maxY - m_minY);
148 qreal x = point.x() / deltaX + m_minX;
149 qreal y = (point.y() - m_size.height()) / (-deltaY) + m_minY;
146 const qreal leftEdgeX= m_logMinX < m_logMaxX ? m_logMinX : m_logMaxX;
147 const qreal leftEdgeY = m_logMinY < m_logMaxY ? m_logMinY : m_logMaxY;
148 const qreal deltaX = m_size.width() / qAbs(m_logMaxX - m_logMinX);
149 const qreal deltaY = m_size.height() / qAbs(m_logMaxY - m_logMinY);
150 qreal x = qPow(m_logBaseX, leftEdgeX + point.x() / deltaX);
151 qreal y = qPow(m_logBaseY, leftEdgeY + (m_size.height() - point.y()) / deltaY);
150 152 return QPointF(x, y);
151 153 }
152 154
@@ -145,9 +145,10 QVector<QPointF> LogXYDomain::calculateGeometryPoints(const QList<QPointF>& vect
145 145
146 146 QPointF LogXYDomain::calculateDomainPoint(const QPointF &point) const
147 147 {
148 const qreal deltaX = m_size.width() / (m_maxX - m_minX);
148 const qreal leftEdgeX= m_logMinX < m_logMaxX ? m_logMinX : m_logMaxX;
149 const qreal deltaX = m_size.width() / qAbs(m_logMaxX - m_logMinX);
149 150 const qreal deltaY = m_size.height() / (m_maxY - m_minY);
150 qreal x = point.x() / deltaX + m_minX;
151 qreal x = qPow(m_logBaseX, leftEdgeX + point.x() / deltaX);
151 152 qreal y = (point.y() - m_size.height()) / (-deltaY) + m_minY;
152 153 return QPointF(x, y);
153 154 }
@@ -146,9 +146,10 QVector<QPointF> XLogYDomain::calculateGeometryPoints(const QList<QPointF>& vect
146 146 QPointF XLogYDomain::calculateDomainPoint(const QPointF &point) const
147 147 {
148 148 const qreal deltaX = m_size.width() / (m_maxX - m_minX);
149 const qreal deltaY = m_size.height() / (m_maxY - m_minY);
149 const qreal leftEdgeY = m_logMinY < m_logMaxY ? m_logMinY : m_logMaxY;
150 const qreal deltaY = m_size.height() / qAbs(m_logMaxY - m_logMinY);
150 151 qreal x = point.x() / deltaX + m_minX;
151 qreal y = (point.y() - m_size.height()) / (-deltaY) + m_minY;
152 qreal y = qPow(m_logBaseY, leftEdgeY + (m_size.height() - point.y()) / deltaY);
152 153 return QPointF(x, y);
153 154 }
154 155
General Comments 0
You need to be logged in to leave comments. Login now