graph vitesse

This commit is contained in:
leo 2022-02-14 22:09:58 +01:00
parent 2c3cfd21a8
commit d6ce476f33
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
5 changed files with 50 additions and 0 deletions

3
Car.py
View File

@ -82,6 +82,9 @@ class Car:
vsec=vleader+(S-vmax*T)/(vbar/bbar+T)
vd=min(self.v+self.a*dt,vmax,vsec)
self.v=max(0,vd)
self.infoWidg.addSpeedPoint(2,self.controller.t,self.v)
self.infoWidg.addSpeedPoint(0,self.controller.t,vmax)
self.infoWidg.addSpeedPoint(1,self.controller.t,vsec)
def update(self,dt):
leaders=self.controller.getCarsOnEdge(self.route[self.index].getID())

View File

@ -3,12 +3,39 @@ from Car import Car
from carInfo import Ui_carInfo
from PySide6.QtWidgets import QWidget, QLabel
from PySide6.QtCore import Qt
from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries
class carInfo(QWidget):
def __init__(self):
super(carInfo,self).__init__()
self.ui = Ui_carInfo()
self.ui.setupUi(self)
self.maxV = 0
self.chart = self.ui.speedGraph.chart()
speedsNames = ["vmax","vsec","Vitesse (m.s^-1)"]
self.speedSeries = []
for ind,s in enumerate(speedsNames):
self.speedSeries.append(QLineSeries())
self.speedSeries[ind].setName(s)
self.chart.addSeries(self.speedSeries[ind])
self.chart.createDefaultAxes()
def addSpeedPoint(self,ind,t,val):
if(t>500):
self.speedSeries[ind].remove(0)
self.speedSeries[ind].append(t,val)
xAxis = self.chart.axes(Qt.Horizontal,self.speedSeries[ind])[0]
xAxis.setRange(max(t-500,0),t)
if(val>self.maxV):
self.maxV = val
yAxis = self.chart.axes(Qt.Vertical, self.speedSeries[ind])[0]
yAxis.setMax(val+1)
self.ui.speedGraph.update()
def setVal(self,key,val):
obj = self.findChild(QLabel,key)
@ -21,9 +48,11 @@ class CarController:
def __init__(self,parentMap):
self.map=parentMap
self.cars=[]
self.t=0
def fromPath(self,path):
self.cars=[]
self.t=0
while(self.infoWidget.count() != 0):
self.infoWidget.removeItem(0)
@ -47,6 +76,7 @@ class CarController:
def update(self):
if(self.map.net is None):
return
self.t+=1
for car in self.cars:
car.update(1.0/60)

View File

@ -8,6 +8,7 @@
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCharts import QChartView
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
@ -50,6 +51,11 @@ class Ui_carInfo(object):
self.verticalLayout.addWidget(self.Leader)
self.speedGraph = QChartView(carInfo)
self.speedGraph.setObjectName(u"speedGraph")
self.verticalLayout.addWidget(self.speedGraph)
self.retranslateUi(carInfo)

View File

@ -49,8 +49,18 @@
</property>
</widget>
</item>
<item>
<widget class="QChartView" name="speedGraph"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QChartView</class>
<extends>QGraphicsView</extends>
<header>qchartview</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -2,6 +2,7 @@ from Map import Map
from CarController import CarController
from PySide6.QtWidgets import QFileDialog
from PySide6.QtCore import QElapsedTimer
class mainLoop():
def __init__(self, parent):