извлекать невыпуклую оболочку из суммы Минковского с помощью наддува

http://postimg.org/image/sgl1q3vf5/
http://postimg.org/image/787d8ogy9/

Как показано на рисунке выше, я попытался вычислить сумму Минковского ломаной и окружности, и полученная фигура покрывает область многоугольника, который я пытаюсь сгенерировать. Я использую пример кода от boost для реализации суммы Минковского.
Мой вопрос заключается в том, каковы некоторые эффективные способы извлечь невыпуклую оболочку (из-за отсутствия лучшего термина) результата суммы Минковского (границы), спасибо.

1

Решение

Чтобы извлечь невыпуклый корпус, вам нужно реализовать Альфа-формы, Я сейчас занимаюсь реализацией алгоритма для моего проекта, к сожалению, это не так просто.

Альтернативой реализации этого является использование CGAL, у него есть реализация Alpha Shapes (хотя эта часть библиотеки — GPL).

0

Другие решения

Если это поможет, я недавно добавил сумму Минковского в свою библиотеку Clipper:
http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Functions/MinkowskiSum.htm

введите описание изображения здесь

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector