Я хотел бы знать, если есть алгоритм, который дает множество точек и угол вычисляет выпуклую оболочку, если угол и дали вычисляет конверт, который более близко следует за «периметром».
И если есть определение непересекающегося периметра множества точек, в этом случае результирующий многоугольник, когда большой.
Другой взгляд на проблему может состоять в том, чтобы найти алгоритм, который можно параметризировать, чтобы найти для минимальное решение по периметру (выпуклая оболочка) и для (нормализовано) полилинии минимальной площади, охватывающей все точки.
algorithms
computational-geometry
naufraghi
источник
источник
Ответы:
Вы можете исследовать так называемый альфа-корпус , например: пакет CRAN , Википедия по альфа-фигурам :
[Изображение по этой ссылке .]
Альфа-корпус имеет очень хорошие геометрические свойства и был тщательно изучен, но он все еще может не соответствовать вашим целям.
источник
Это может быть слишком просто, чтобы представлять интерес, но один из подходов состоит в том, чтобы найти выпуклую оболочку и использовать многоугольную границу сегмент за сегментом, чтобы найти дополнительные точки, которые удовлетворяютα критерий угла, остановка после завершения полного цикла без добавления дополнительных вершин. Для достижения "конвергенции" может потребоваться более одного прохода.
Мы бы хотели подумать о структуре данных, которая позволила бы эффективно находить указанные точки. Одна идея состоит в том, чтобы вычислить ограничивающую рамку для каждого сегмента и сравнить ее с отсортированным списком точек.
источник