1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| #include <vector>
#include <algorithm>
#include <iostream>
namespace cv
{
struct Point
{
Point(int iX, int iY) : x(iX), y(iY) {}
int x;
int y;
};
}
struct sortLeftUpRightDown
{
inline bool operator() (const cv::Point & m1, const cv::Point & m2) const
{
float vx = m2.x - m1.x;
float vy = m2.y - m1.y;
if(vx == 0)
return vy >0;
else
return vx > 0;
}
};
int main(int argc, char* argv[])
{
std::vector< cv::Point > points;
points.push_back(cv::Point(3,-2));
points.push_back(cv::Point(1,8));
points.push_back(cv::Point(5,8));
points.push_back(cv::Point(-7,8));
points.push_back(cv::Point(-6,-8));
points.push_back(cv::Point(6,6));
points.push_back(cv::Point(-4,8));
points.push_back(cv::Point(-10,7));
points.push_back(cv::Point(-2,0));
points.push_back(cv::Point(0,-5));
points.push_back(cv::Point(-1,1));
points.push_back(cv::Point(4,-7));
points.push_back(cv::Point(-7,0));
points.push_back(cv::Point(6,-1));
points.push_back(cv::Point(0,-7));
points.push_back(cv::Point(3,-9));
points.push_back(cv::Point(3,2));
points.push_back(cv::Point(7,-9));
points.push_back(cv::Point(-5,9));
points.push_back(cv::Point(7,-7));
points.push_back(cv::Point(-7,8));
points.push_back(cv::Point(-4,4));
points.push_back(cv::Point(-9,-9));
points.push_back(cv::Point(0,8));
points.push_back(cv::Point(-10,-6));
points.push_back(cv::Point(-3,9));
points.push_back(cv::Point(8,-7));
points.push_back(cv::Point(2,-8));
points.push_back(cv::Point(4,9));
points.push_back(cv::Point(-10,6));
points.push_back(cv::Point(1,-7));
points.push_back(cv::Point(9,-10));
points.push_back(cv::Point(6,-7));
points.push_back(cv::Point(5,-1));
points.push_back(cv::Point(-9,-7));
points.push_back(cv::Point(4,7));
points.push_back(cv::Point(3,-3));
points.push_back(cv::Point(-10,-9));
points.push_back(cv::Point(8,3));
points.push_back(cv::Point(1,-3));
points.push_back(cv::Point(1,6));
points.push_back(cv::Point(6,7));
points.push_back(cv::Point(-7,-9));
points.push_back(cv::Point(9,-3));
points.push_back(cv::Point(-3,3));
points.push_back(cv::Point(5,7));
points.push_back(cv::Point(5,-8));
points.push_back(cv::Point(8,-4));
points.push_back(cv::Point(9,-3));
points.push_back(cv::Point(-5,6));
std::sort(points.begin(), points.end(), sortLeftUpRightDown() );
for(std::vector<cv::Point>::iterator it = points.begin(); it != points.end(); it++)
std::cout << "Point(" << it->x << "," << it->y << ")" << std::endl;
return 0;
} |
Partager