comparison python/moving.py @ 653:107f1ad02b69

compilation with C++11 and test function for movingobject distance
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 07 May 2015 13:25:31 +0200
parents bfaa6b95dae2
children 784298512b60
comparison
equal deleted inserted replaced
652:3b13ec964476 653:107f1ad02b69
1153 axis('equal') 1153 axis('equal')
1154 figure(2) 1154 figure(2)
1155 plot(list(self.getTimeInterval()), speeds) 1155 plot(list(self.getTimeInterval()), speeds)
1156 1156
1157 @staticmethod 1157 @staticmethod
1158 def minMaxDistance(obj1, obj2):
1159 '''Computes the min max distance used for feature grouping'''
1160 commonTimeInterval = obj1.commonTimeInterval(obj2)
1161 if not commonTimeInterval.empty():
1162 minDistance = (obj1.getPositionAtInstant(commonTimeInterval.first)-obj2.getPositionAtInstant(commonTimeInterval.first)).norm2()
1163 maxDistance = minDistance
1164 for t in list(commonTimeInterval)[1:]:
1165 d = (obj1.getPositionAtInstant(t)-obj2.getPositionAtInstant(t)).norm2()
1166 if d<minDistance:
1167 minDistance = d
1168 elif d>maxDistance:
1169 maxDistance = d
1170 return int(commonTimeInterval.length()), minDistance, maxDistance
1171 else:
1172 return int(commonTimeInterval.length()), None, None
1173
1174 @staticmethod
1158 def distances(obj1, obj2, instant1, _instant2 = None): 1175 def distances(obj1, obj2, instant1, _instant2 = None):
1176 '''Returns the distances between all features of the 2 objects
1177 at the same instant instant1
1178 or at instant1 and instant2'''
1159 from scipy.spatial.distance import cdist 1179 from scipy.spatial.distance import cdist
1160 if _instant2 is None: 1180 if _instant2 is None:
1161 instant2 = instant1 1181 instant2 = instant1
1162 else: 1182 else:
1163 instant2 = _instant2 1183 instant2 = _instant2