fix?
This commit is contained in:
parent
426bcc8139
commit
708341dd06
24
Car.py
24
Car.py
@ -50,6 +50,8 @@ class Car():
|
|||||||
self.v=0
|
self.v=0
|
||||||
self.a=10
|
self.a=10
|
||||||
self.b=20
|
self.b=20
|
||||||
|
self.leaderBefore=False
|
||||||
|
self.distToInter=0
|
||||||
|
|
||||||
self.vmax=0
|
self.vmax=0
|
||||||
|
|
||||||
@ -125,7 +127,9 @@ class Car():
|
|||||||
edgeInd+=1
|
edgeInd+=1
|
||||||
carComing = self.getLeaderAtIntersection(prevInd,edgeInd)
|
carComing = self.getLeaderAtIntersection(prevInd,edgeInd)
|
||||||
if(carComing is not None):
|
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]
|
return carComing[1]
|
||||||
if(not self.route[edgeInd].isSpecial()):
|
if(not self.route[edgeInd].isSpecial()):
|
||||||
prevInd = edgeInd
|
prevInd = edgeInd
|
||||||
@ -143,6 +147,7 @@ class Car():
|
|||||||
l+=dist(laneShape[shapeInd], closest.pos)
|
l+=dist(laneShape[shapeInd], closest.pos)
|
||||||
if l <= maxDist:
|
if l <= maxDist:
|
||||||
self.leaderDist = l
|
self.leaderDist = l
|
||||||
|
self.leaderBefore = False
|
||||||
return closest
|
return closest
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
@ -227,14 +232,15 @@ class Car():
|
|||||||
painter.drawText(QPointF(0,0),"vroom")
|
painter.drawText(QPointF(0,0),"vroom")
|
||||||
self.vroom -= 1
|
self.vroom -= 1
|
||||||
painter.restore()
|
painter.restore()
|
||||||
#painter.drawEllipse(pt,100,100)
|
elSize = self.v * self.T
|
||||||
|
painter.drawEllipse(pt,elSize, elSize)
|
||||||
|
|
||||||
def conduite(self,vmax,leader,dt):
|
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
|
self.v = 0
|
||||||
return
|
return
|
||||||
|
"""
|
||||||
if(leader is None):
|
if(leader is None):
|
||||||
self.v = self.vmax
|
self.v = self.vmax
|
||||||
self.updateGraph(self.v, vmax, 0)
|
self.updateGraph(self.v, vmax, 0)
|
||||||
@ -245,6 +251,16 @@ class Car():
|
|||||||
vleader=leader.v # vitesse de la voiture leader
|
vleader=leader.v # vitesse de la voiture leader
|
||||||
bleader=leader.b
|
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
|
vbar=(self.v+vleader)/2
|
||||||
bbar=(bleader+self.b)/2
|
bbar=(bleader+self.b)/2
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user