图片附件: 游客没有浏览图片的权限,请
登录 或
注册
ArrayList tmp = new ArrayList();
for (int j = 0; j < (ix + 1) * (jy + 1); j++)
////这里ix是x方向格子数0--ix,jy是y方向格子数0--jy,
///////ix,jy是通过(maxx,minx,maxy,miny是格子的范围坐标,以radius为边长做格子)得到的
{
ArrayList listxy = new ArrayList();
tmp.Add(listxy);
}
for (uint i = 0; i < 200; i++)
{
double x1 = x[i] * factorx0 + offsetx0;
double y1 = y[i] * factory0 + offsety0;
/////////通过x[i],y[i]得到x1,y1(大地坐标)
if ((x1 >= minx) && (x1 <= maxx) && (y1 >= miny) && (y1 <= maxy))
/////这个判断是x1,y1在不在格子里
{
//////maxx,minx,maxy,miny是格子的范围坐标,以radius为边长做格子
int xx = Convert.ToInt32((x1 - minx) / radius);
int yy = Convert.ToInt32((y1 - miny) / radius);
/////得到的xx,yy是x方向,y方向的方格的位置
((ArrayList)tmp[xx * (jy + 1) + yy]).Add(i);
////////确定x1,y1在[xx * (jy + 1) + yy]这个格子里,在这个格子里把i加入
}
}
现在的问题是:
((ArrayList)tmp[xx * (jy + 1) + yy]).Add(i);
因为第i个点得到的格子位置是随意的,不一定在格子的哪个位置,有可能在确定0号格子几个点后,就要确定第11号格子的点,然后又有0号格子的点要加入,所以想问问怎么解决?
而且每个格子中的点数是不定的,有的格子中点多有的格子中点少,还有的点没在格子里