#include "simul/Graph.h" #include "cstdlib" #include "time.h" #include #include #include #include "asservissement.h" Graph::Graph(QWidget* widget) : QWidget(widget), vLinear(1000), vAngular(1000) { 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(); } void Graph::paintEvent(QPaintEvent*) { 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++) { p.drawLine(i,-(gHeight/4)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/4,i+1,-(gHeight/4)*(vLinear[i+1]/VITESSE_LINEAIRE_MAX)+gHeight/4); //p.drawEllipse(QRectF(i -diameter / 2.0, (gHeight/2)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/2 -diameter / 2.0, diameter, diameter)); } for (size_t i=0; i+1 < vLinear.size(); i++) { 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); //p.drawEllipse(QRectF(i -diameter / 2.0, (gHeight/2)*(vLinear[i]/VITESSE_LINEAIRE_MAX)+gHeight/2 -diameter / 2.0, diameter, diameter)); } } void Graph::keyPressEvent(QKeyEvent*, bool) { }