This commit is contained in:
leo 2022-03-29 16:12:16 +02:00
parent 426bcc8139
commit 708341dd06
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB

24
Car.py
View File

@ -50,6 +50,8 @@ class Car():
self.v=0
self.a=10
self.b=20
self.leaderBefore=False
self.distToInter=0
self.vmax=0
@ -125,7 +127,9 @@ class Car():
edgeInd+=1
carComing = self.getLeaderAtIntersection(prevInd,edgeInd)
if(carComing is not None):
self.leaderDist = l + 0.3*carComing[0]
self.distToInter = l
self.leaderDist = carComing[0]
self.leaderBefore = True
return carComing[1]
if(not self.route[edgeInd].isSpecial()):
prevInd = edgeInd
@ -143,6 +147,7 @@ class Car():
l+=dist(laneShape[shapeInd], closest.pos)
if l <= maxDist:
self.leaderDist = l
self.leaderBefore = False
return closest
else:
return
@ -227,14 +232,15 @@ class Car():
painter.drawText(QPointF(0,0),"vroom")
self.vroom -= 1
painter.restore()
#painter.drawEllipse(pt,100,100)
elSize = self.v * self.T
painter.drawEllipse(pt,elSize, elSize)
def conduite(self,vmax,leader,dt):
if self.id == "f_00" and self.controller.t%10>5:
"""if self.id == "f_00" and self.controller.t%10>5:
self.v = 0
return
"""
if(leader is None):
self.v = self.vmax
self.updateGraph(self.v, vmax, 0)
@ -245,6 +251,16 @@ class Car():
vleader=leader.v # vitesse de la voiture leader
bleader=leader.b
if(self.leaderBefore):
if(vleader == 0):
return
if(self.distToInter > (self.T * self.vmax) or ((self.distToInter / self.vmax) < (self.leaderDist / vleader) - 2*self.T)):
self.v=self.vmax
else:
self.v = 0
self.updateGraph(self.v, vmax, 0)
return
vbar=(self.v+vleader)/2
bbar=(bleader+self.b)/2