Сделайте qhull / qvoronoi ограничить Voronoi выпуклой оболочкой или заданным многоугольником - PullRequest
3 голосов
/ 08 мая 2011

Плоское тесселяция Вороного всегда будет иметь неограниченные многоугольники (бесконечные области).

Как мне сказать qhull / qvoronoi пересекать тесселяцию либо с выпуклой оболочкой исходных точек, либо с многоугольником, который я явно указываю (возможно, прямоугольником).

Конкретный пример (https://github.com/barrycarter/bcapps/blob/master/bc-temperature-voronoi.pl):

  • Я отображаю широты / долготы (неточно) в двумерный прямоугольник (-180,180) * (-90,90) и применить квороной к результату.

  • Я не могу обрабатывать неограниченные полигоны, и API Карт Google не любит полигоны, которые выходят наружу (-180,180) (- 90,90) [на самом деле это больше похоже на (-180,180)) (- 85,85), потому что Google использует Mercator]

  • Можно ли заставить qhull / qvoronoi пересекать полигоны с выпуклой оболочкой точек и / или (-180,180)* (- 90,90) прямоугольник?Конечно, выпуклая оболочка целиком содержится внутри прямоугольника.

  • Если нет, может ли другая программа сделать это?Я подозреваю, что мог бы написать это сам, но предпочел бы существующее решение.

...