Mercurial > hg > easaier-soundaccess
diff widgets/Plotter.cpp @ 231:fd17abdbef2d
plotter with the curve inside (not a good version)
author | benoitrigolleau |
---|---|
date | Thu, 06 Mar 2008 14:50:00 +0000 |
parents | 7d5d51145b81 |
children | 70b88fbbfb5c |
line wrap: on
line diff
--- a/widgets/Plotter.cpp Wed Mar 05 16:03:05 2008 +0000 +++ b/widgets/Plotter.cpp Thu Mar 06 14:50:00 2008 +0000 @@ -12,6 +12,7 @@ */ #include "Plotter.h" +#include <math.h> #include <QtGui> Plotter::Plotter(QWidget *parent): @@ -25,13 +26,6 @@ m_curveMask.push_back(0); } - - m_curve.push_back(QPoint(399,179)); - m_curve.push_back(QPoint(300,20)); - m_curve.push_back(QPoint(60,150)); - m_curve.push_back(QPoint(10,30)); - m_curve.push_back(QPoint(0,0)); - setMinimumSize(QSize(m_signalWidth + 10, m_signalHeight + 10)); refreshPixmap(); @@ -46,7 +40,7 @@ void Plotter::setCurve(float * curve) { m_curve.clear(); - for (int i=0; i< 400; i++) + for (int i=0; i< m_signalWidth; i++) { m_curve.push_back(QPoint(i, curve[i])); } @@ -94,6 +88,8 @@ int y = event->pos().y() - m_margin; if(y>m_signalHeight-1) y= m_signalHeight-1; + if(x>m_signalWidth-1) + y= m_signalWidth-1; int xlast = m_lastPoint.x(); int ylast = m_lastPoint.y(); @@ -155,11 +151,17 @@ } void Plotter::drawCurve(QPainter *painter){ - painter->setRenderHint (QPainter::Antialiasing, true ); + //painter->setRenderHint (QPainter::Antialiasing, true ); QPolygonF polyline(m_signalWidth); + for(int i = 0 ; i < m_curve.count() ; i++){ - polyline[i] = QPoint(m_curve.at(i).x()+m_margin, m_curve.at(i).y()+m_margin); + int m=-(1*floor((m_curve.at(i).y()/0.1))); // Calculates pixel coordinate and Plots FFT (in green) + if (m>m_signalHeight){m = m_signalHeight;} + if (m<0){m = 0;} + int y= m_signalHeight - m; + polyline[i] = QPoint(m_curve.at(i).x() + m_margin, /*m_curve.at(i).y()*/y + m_margin); } + painter->setPen(Qt::green); painter->drawPolyline(polyline); }