中位中心栅格遍历法
#include <iostream>
#include <cmath>
namespace geo
{
struct POINT
{
double x;
double y;
};
//栅格法寻找中位中心
POINT GetMedianCentre(const POINT * pts, int n, double d/*设置栅格化格网宽度*/)
{
double min_x = pts[0].x;
double min_y = pts[0].y;
double max_x = pts[0].x;
double max_y = pts[0].y;
for(int i = 0; i < n; i++)
{
if(pts[i].x < min_x)
{
min_x = pts[i].x;
}
else if(pts[i].x > max_x)
{
max_x = pts[i].x;
}
if(pts[i].y < min_y)
{
min_y = pts[i].y;
}
else if(pts[i].y > max_y)
{
max_y = pts[i].y;
}
}
int raster_row = (max_y - min_y) / d + 1;//注意 + 1
int raster_column = (max_x - min_x) / d + 1;
struct INTPT {int row; int col;};//行列数对
INTPT * pts_o = new INTPT [n];//原有点集栅格化后的行列数对
for(int i = 0; i < n; i++)
{