Мне нужно найти voronoi следующих соседей для данной точки, то есть все точки, имеющие ячейки voronoi, которые касаются ячейки первоначальной частицы. Геометрия - это двумерное и периодические граничные условия. Каков наилучший способ для этого (с использованием или без использования внешних библиотек)?Поиск voronoi следующих соседей в периодических граничных условиях
1
A
ответ
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]);
}
}
}
}
+0
На каком языке это? – user3058865
+0
Код находит все ячейки voronoi из триангуляции delaunay. – Bytemain
+0
Я понимаю, но написано, на каком языке программирования? – user3058865
Библиотека [CGAL] (www.cgal.org) обеспечивает [2D периодических триангуляции] (http://doc.cgal.org/latest/Periodic_2_triangulation_2/) пакет. – sloriot