Algorithm to compute the remaining polygon after subtraction

У меня большой многоугольник ( Па ). Внутри многоугольника много маленьких "дыр", как показано:

Вот несколько условий для отверстий:

  1. Отверстия не могут перекрывать друг друга
  2. Отверстия не могут выходить за пределы внешнего многоугольника
  3. ] Однако отверстия могут касаться внешнего края многоугольника

Как эффективно получить оставшийся многоугольник (или список многоугольников)? Самый простой способ (метод грубой силы) - взять Па и постепенно вычислить оставшийся многоугольник путем вычитания дыр. Хотя эта идея осуществима, но подозреваю, что есть более эффективный алгоритм.

Изменить: я не спрашиваю, как выполнить алгоритм отсечения (или вычитания) многоугольника! На самом деле это то, что я сделал бы грубой силой. Я' m спрашивает в дополнение к методу отсечения многоугольника (возьмите основной многоугольник и затем постепенно вырезайте отверстия), есть ли другой более эффективный способ?

5
задан Graviton 26 October 2019 в 09:02
поделиться