Bonjour,
J'ai un vecteur de points que je souhaite trier de gauche à droite et de bas en haut.
Pour l'instant, j'arrive à le trier de façon symétrique en définissant ma propre fonction de tri que je donne à std::sort. J'utilise une distance non signée.
Lorsque je tente d'implémenter une fonction de tri de gauche à droite et de bas en haut. J'ai std::sort() qui plante. J'ai tenté ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 struct sortLeftUpRightDown { inline bool operator() (const cv::Point & m1, const cv::Point & m2) const { // diagonale float vx = m2.x - m1.x; float vy = m2.y - m1.y; if(vx+vy<0) return true; else return false; } };
Si vous avez une réponse à mon problème, je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 struct sortLeftUpRightDown { inline bool operator() (const cv::Point & m1, const cv::Point & m2) const { // diagonale float vx = m2.x - m1.x; float vy = m2.y - m1.y; if(vy<0) return true; else if(vx<0) return true; else return false; } };
Partager