#include <QPointF> #include <qwt_plot_curve.h> #include "curve.h" Curve::Curve(const QString& title): QwtPlotCurve(title) { ; } void Curve::move(double dx, double dy) { size_t n = dataSize(); double *x = new double[n]; double *y = new double[n]; QPointF p; for (size_t i = 0; i < n; i++) { p = data()->sample(i); x[i] = p.x()+dx; y[i] = p.y()+dy; } setSamples(x,y,n); delete [] x; delete [] y; } void Curve::normalise(double scale) { size_t n = dataSize(); double ymin,ymax,multiplier; double *x = new double[n]; double *y = new double[n]; ymin = minYValue(); ymax = maxYValue(); if (qFuzzyCompare(ymin,ymax)) { delete [] x; delete [] y; return; } multiplier = scale/(ymax-ymin); QPointF p; for (size_t i = 0; i < n; i++) { p = data()->sample(i); x[i] = p.x(); y[i] = (p.y()-ymin)*multiplier+ymin; } setSamples(x,y,n); delete [] x; delete [] y; } void Curve::multiply(double multiplier) { size_t n = dataSize(); double *x = new double[n]; double *y = new double[n]; QPointF p; for (size_t i = 0; i < n; i++) { p = data()->sample(i); x[i] = p.x(); y[i] = p.y()*multiplier; } setSamples(x,y,n); delete [] x; delete [] y; }