在周期性边界条件下查找voronoi下一个邻居

时间:2016-03-03 10:50:42

标签: algorithm computational-geometry nearest-neighbor voronoi

我需要找到给定点的voronoi下一个邻居,即所有具有接触原始粒子单元的voronoi单元的点。 几何是二维的,并且使用周期性边界条件。 实现这一目标的最佳方法是什么(使用或不使用外部库)?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

foreach ($this->indices as $key => $arr)
  {
     foreach ($this->indices as $ikey => $iarr)
     {
        if ($key != $ikey)
        {
           if ( ($arr[0]==$iarr[1] && $arr[1]==$iarr[0]) ||
                ($arr[0]==$iarr[2] && $arr[1]==$iarr[1]) ||
                ($arr[0]==$iarr[3] && $arr[1]==$iarr[2]) ||

                ($arr[1]==$iarr[1] && $arr[2]==$iarr[0]) ||
                ($arr[1]==$iarr[2] && $arr[2]==$iarr[1]) ||
                ($arr[1]==$iarr[3] && $arr[2]==$iarr[2]) ||

                ($arr[2]==$iarr[1] && $arr[3]==$iarr[0]) ||
                ($arr[2]==$iarr[2] && $arr[3]==$iarr[1]) ||
                ($arr[2]==$iarr[3] && $arr[3]==$iarr[2]) 

              )
           {
              $this->voronoi[$key][$ikey]=array($this->cc[$key], $this->cc[$ikey]); 
           }
        }
     }
  }