summaryrefslogtreecommitdiffstats
path: root/examples/scatterinteractions
diff options
context:
space:
mode:
authorTero Ahola <tero.ahola@digia.com>2012-06-05 15:06:29 +0300
committerTero Ahola <tero.ahola@digia.com>2012-06-05 15:12:24 +0300
commit41224d5421f7fddd68fe4483db42250a1515e8a9 (patch)
tree81a6c7084cdd65a5a380644d927d46e24f1f8cb0 /examples/scatterinteractions
parentb193865d4793decd4f685b5c859e0aff1666af25 (diff)
Fixed coordinate bug with QScatterSeries::onClicked
Diffstat (limited to 'examples/scatterinteractions')
-rw-r--r--examples/scatterinteractions/chartview.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/examples/scatterinteractions/chartview.cpp b/examples/scatterinteractions/chartview.cpp
index 1867c994..85d7c352 100644
--- a/examples/scatterinteractions/chartview.cpp
+++ b/examples/scatterinteractions/chartview.cpp
@@ -19,6 +19,8 @@
****************************************************************************/
#include "chartview.h"
+#include <math.h>
+#include <QDebug>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -55,6 +57,20 @@ ChartView::~ChartView()
void ChartView::handleClickedPoint(const QPointF& point)
{
- m_scatter->remove(point);
- m_scatter2->append(point);
+ QPointF clickedPoint = point;
+ // Find the closest point from series 1
+ QPointF closest(INT64_MAX, INT64_MAX);
+ qreal distance(INT64_MAX);
+ foreach(QPointF currentPoint, m_scatter->points()) {
+ qreal currentDistance = sqrt((currentPoint.x() - clickedPoint.x()) * (currentPoint.x() - clickedPoint.x())
+ + (currentPoint.y() - clickedPoint.y()) * (currentPoint.y() - clickedPoint.y()));
+ if (currentDistance < distance) {
+ distance = currentDistance;
+ closest = currentPoint;
+ }
+ }
+
+ // Remove the closes point from series 1 and append it to series 2
+ m_scatter->remove(closest);
+ m_scatter2->append(closest);
}