У меня была очень похожая проблема: мне нужно было надувать упрощение многоугольников.
Я сделал простой алгоритм, удалив вогнутую точку (это увеличит размер многоугольника) или удалив выпуклое ребро (между 2 выпуклыми точками) и продолжив соседние ребра. В любом случае выполнение одной из этих двух возможностей приведет к удалению одной точки на многоугольнике.
Я решил удалить точку или ребро, которое приводит к наименьшему изменению площади. Вы можете повторять этот процесс до тех пор, пока упрощение для вас не подходит (например, не более 200 баллов).
2 основные трудности заключались в том, чтобы получить быстрый алгоритм (избегая двухкратного вычисления вариации удаления вершин / ребер и сохраняя отсортированные возможности) и избежать вставки самопересечения в процесс (не очень легко сделать и объяснить, но возможно с ограниченная вычислительная сложность).
Фактически, после более пристального взгляда, эта идея похожа на идею Висвалингама с приспособлением для удаления кромок.