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);
 }