| 
 | 
 
 
 楼主 |
发表于 2013-10-12 09:48:48
|
显示全部楼层
 
 
 
 本帖最后由 nmdiszt 于 2013-10-12 09:52 编辑  
 
 
不是 
我的(new int[] { 1, 2, 3, 4, 5, 6 })是不能确定的!!! 
下面看我的问题!!! 
 
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 * factorx0 + offsetx0; 
                double y1 = y * factory0 + offsety0; 
 
/////////通过x,y得到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号格子的点要加入,所以想问问怎么解决? 
 
 
而且每个格子中的点数是不定的,有的格子中点多有的格子中点少,还有的点没在格子里                |   
 
 
 
 |