Я хотел бы деконструировать следующий многоугольник, показанный синим цветом, удалив все точки многоугольника, которые вызывают вогнутость.
В настоящее время я пытаюсь сделать следующее:
- Выньте каждую точку из многоугольника
- Проверьте точку, чтобы увидеть, попадает ли она в многоугольник, созданный остальной частью набора.
- Если истина, удалите точку
- Если false, держите точку
Это работает в большинстве случаев, но в предыдущем случае точки в (2,3) и (2,4) не будут удалены одновременно. В обоих случаях одна из точек будет удалена, но другая не будет в зависимости от порядка, в котором передается массив.
Мне интересно вот что:
- Есть ли способ проверить, имеет ли многоугольник, с которым я имею дело, один из этих случаев (IE: 3 точки отказа подряд?)
или - Есть просто более эффективный способ создания выпуклых многоугольников?
Спасибо.