Newer
Older
Xavier Corbillon
committed
#include "simul/Graph.h"
#include "cstdlib"
#include "time.h"
#include <QWidget>
#include <iostream>
#include <QPainter>
#include "asservissement.h"
Graph::Graph(QWidget* widget) : QWidget(widget), vLinear(1000), vAngular(1000)
Xavier Corbillon
committed
{
dt=0;
setAutoFillBackground(true);
QPalette p = palette();
p.setColor(QPalette::Window,QColor(Qt::darkGray));
setPalette(p);
}
Graph::~Graph()
{
}
void Graph::update(int dt)
{
this->dt = dt;
repaint();
}
Xavier Corbillon
committed
{
int diameter = 1;
QPainter p(this);
p.setRenderHints(QPainter::Antialiasing,true);
p.setWindow(QRect(0,0,gWidth,gHeight));
p.setWorldMatrixEnabled(true);
vAngular.push_back(Asservissement::asservissement->getAngularSpeed());
vLinear.push_back(Asservissement::asservissement->getLinearSpeed());
p.fillRect(0,0,gWidth,gHeight,QColor(255,255,255));
p.setPen(QColor(Qt::black));
for (size_t i=0; i+1 < vLinear.size(); i++)
Xavier Corbillon
committed
{
p.drawLine(i,-(gHeight/4)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/4,i+1,-(gHeight/4)*(vLinear[i+1]/VITESSE_LINEAIRE_MAX)+gHeight/4);
Guillaume Buret
committed
//p.drawEllipse(QRectF(i -diameter / 2.0, (gHeight/2)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/2 -diameter / 2.0, diameter, diameter));
Xavier Corbillon
committed
}
for (size_t i=0; i+1 < vLinear.size(); i++)
Xavier Corbillon
committed
{
p.drawLine(i,-(gHeight/4)*(vAngular[i]/VITESSE_ANGULAIRE_MAX)+3*gHeight/4,i+1,-(gHeight/4)*(vAngular[i+1]/VITESSE_ANGULAIRE_MAX)+3*gHeight/4);
Guillaume Buret
committed
//p.drawEllipse(QRectF(i -diameter / 2.0, (gHeight/2)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/2 -diameter / 2.0, diameter, diameter));
Xavier Corbillon
committed
}
}
void Graph::keyPressEvent(QKeyEvent*, bool)