changeset 182:d3f6de6c3918

added drawing functialities, in particular on aerial image
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 24 Nov 2011 19:00:04 -0500
parents 42142c5223ce
children ed944ff45e8c
files python/moving.py
diffstat 1 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/python/moving.py	Wed Nov 23 15:57:42 2011 -0500
+++ b/python/moving.py	Thu Nov 24 19:00:04 2011 -0500
@@ -267,10 +267,22 @@
 
     def addPosition(self, p):
         self.addPositionXY(p.x, p.y)
-        
-    def draw(self, options = ''):
+
+    @staticmethod
+    def _draw(positions, options = '', withOrigin = False):
         from matplotlib.pylab import plot
-        plot(self.positions[0], self.positions[1], options)
+        plot(positions[0], positions[1], options)
+        if withOrigin:
+            plot([positions[0][0]], [positions[1][0]], 'ro')
+
+    def draw(self, options = '', withOrigin = False):
+        Trajectory._draw(self.positions, options, withOrigin)
+
+    def drawOnImage(self, nPixelsPerUnitDistance, imageHeight, options = '', withOrigin = False):
+        from matplotlib.pylab import plot
+        imgPositions = [[x*nPixelsPerUnitDistance for x in self.positions[0]],
+                        [-x*nPixelsPerUnitDistance+imageHeight for x in self.positions[1]]]
+        Trajectory._draw(imgPositions, options, withOrigin)
 
     def length(self):
         return len(self.positions[0])
@@ -435,8 +447,11 @@
     def getYCoordinates(self):
         return self.positions.getYCoordinates()
     
-    def draw(self, options = ''):
-        self.positions.draw(options)
+    def draw(self, options = '', withOrigin = False):
+        self.positions.draw(options, withOrigin)
+
+    def drawOnImage(self, nPixelsPerUnitDistance, imageHeight, options = '', withOrigin = False):
+        self.positions.drawOnImage(nPixelsPerUnitDistance, imageHeight, options, withOrigin)
 
     def getInstantsCrossingLane(self, p1, p2):
         '''Returns the instant(s)