Java: поиск области многоугольника A, не пересекаемой многоугольником B

#java #geometry #polygon #intersection

#java #геометрия #многоугольник #пересечение

Вопрос:

Я пытаюсь создать метод Java, который принимает два полигона в качестве параметров и возвращает третий полигон, представляющий часть полигона A, которая не пересекается полигоном B. Вот изображение.

https://i.stack.imgur.com/gSAEH.png

Многоугольник A — это черный многоугольник, многоугольник B — это зеленый многоугольник, пересекающий многоугольник A, а возвращаемый многоугольник — это область, заштрихованная синим цветом внутри многоугольника A.

Ответ №1:

Вам нужны алгоритмы или библиотека для логических операций над полигонами. В вашем примере показан вогнутый многоугольник, поэтому вы можете использовать алгоритм Ватти или Грейнера-Хофмана.

Я подозреваю, что правильная реализация этих методов довольно сложна, поэтому рекомендую выбрать готовую к использованию библиотеку, например, с этой страницы / программного обеспечения (я не вижу заявленной поддержки Java, кроме этой, но проверьте возможности)