Mercurial > hg > nsaunier > traffic-intelligence
comparison python/moving.py @ 451:cd342a774806
Point/CurvilinearTrajectory/Interaction utiles
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Thu, 13 Feb 2014 01:24:27 -0500 |
| parents | 31604ef1cad4 |
| children | dcc821b98efc |
comparison
equal
deleted
inserted
replaced
| 450:c0786fe4ad94 | 451:cd342a774806 |
|---|---|
| 170 def __add__(self, other): | 170 def __add__(self, other): |
| 171 return Point(self.x+other.x, self.y+other.y) | 171 return Point(self.x+other.x, self.y+other.y) |
| 172 | 172 |
| 173 def __sub__(self, other): | 173 def __sub__(self, other): |
| 174 return Point(self.x-other.x, self.y-other.y) | 174 return Point(self.x-other.x, self.y-other.y) |
| 175 | |
| 176 def __neg__(self): | |
| 177 return Point(-self.x, -self.y) | |
| 175 | 178 |
| 176 def multiply(self, alpha): | 179 def multiply(self, alpha): |
| 177 return Point(self.x*alpha, self.y*alpha) | 180 return Point(self.x*alpha, self.y*alpha) |
| 178 | 181 |
| 179 def draw(self, options = 'o', **kwargs): | 182 def draw(self, options = 'o', **kwargs): |
| 609 | 612 |
| 610 def setPosition(self, i, s, y, lane): | 613 def setPosition(self, i, s, y, lane): |
| 611 self.setPositionXY(i, s, y) | 614 self.setPositionXY(i, s, y) |
| 612 if i < self.__len__(): | 615 if i < self.__len__(): |
| 613 self.lanes[i] = lane | 616 self.lanes[i] = lane |
| 617 | |
| 618 def getIntersections(self, S1, lane = None): | |
| 619 '''Returns a list of the indices at which the trajectory | |
| 620 goes past the curvilinear coordinate S1 | |
| 621 (in provided lane if lane != None) | |
| 622 the list is empty if there is no crossing''' | |
| 623 indices = [] | |
| 624 for i in xrange(self.length()-1): | |
| 625 q1=self.__getitem__(i) | |
| 626 q2=self.__getitem__(i+1) | |
| 627 if q1[0] <= S1 <= q2[0] and lane == None or (self.lanes[i] == lane and self.lanes[i+1] == lane): | |
| 628 indices.append(i+(S1-q1[0])/(q2[0]-q1[0])) | |
| 629 return indices | |
| 614 | 630 |
| 615 ################## | 631 ################## |
| 616 # Moving Objects | 632 # Moving Objects |
| 617 ################## | 633 ################## |
| 618 | 634 |
