Mercurial Hosting > traffic-intelligence
changeset 1114:7135b5eaa6b4
correcting poor requirement for interpolateCurvilinearPositions (when changing alignment)
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 21 Jun 2019 15:54:04 -0400 |
parents | 19581a4caf90 |
children | cef7aa2f9931 |
files | trafficintelligence/moving.py trafficintelligence/tests/moving.txt |
diffstat | 2 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/trafficintelligence/moving.py Thu Jun 20 10:39:21 2019 -0400 +++ b/trafficintelligence/moving.py Fri Jun 21 15:54:04 2019 -0400 @@ -1450,12 +1450,15 @@ i = int(floor(t)) p1 = self.getCurvilinearPositionAtInstant(i) p2 = self.getCurvilinearPositionAtInstant(i+1) - alpha = t-float(i) - if alpha < 0.5: - lane = p1[2] + if p1[2] == p2[2]: + alpha = t-float(i) + # if alpha < 0.5: + # lane = p1[2] + # else: + # lane = p2[2] + return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], p1[2]] else: - lane = p2[2] - return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], lane] + print('Object {} changes lane at {}'.format(self.getNum(), t)) else: print('Object {} does not exist at {}'.format(self.getNum(), t)) else:
--- a/trafficintelligence/tests/moving.txt Thu Jun 20 10:39:21 2019 -0400 +++ b/trafficintelligence/tests/moving.txt Fri Jun 21 15:54:04 2019 -0400 @@ -229,8 +229,11 @@ >>> o.curvilinearPositions = t1 >>> o.interpolateCurvilinearPositions(2.3) [4.3, 0.0, 'b'] ->>> o.interpolateCurvilinearPositions(10.7) # doctest:+ELLIPSIS -[14.09999..., 0.69999..., 'a'] +>>> o.interpolateCurvilinearPositions(9.7) # doctest:+ELLIPSIS +[11.7..., 0.0..., 'b'] +>>> o.interpolateCurvilinearPositions(10.7) +Object 0 changes lane at 10.7 +>>> t2 = CurvilinearTrajectory.generate(0, 1., 10, 'a', 1.) >>> t1 = CurvilinearTrajectory.generate(3, 1., 10, 'b') >>> t1.duplicateLastPosition()