graph vitesse
This commit is contained in:
parent
2c3cfd21a8
commit
d6ce476f33
3
Car.py
3
Car.py
@ -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())
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
10
carInfo.ui
10
carInfo.ui
@ -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>
|
||||
|
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user