#java #geometry #polygon #intersection
#java #геометрия #многоугольник #пересечение
Вопрос:
Я пытаюсь создать метод Java, который принимает два полигона в качестве параметров и возвращает третий полигон, представляющий часть полигона A, которая не пересекается полигоном B. Вот изображение.
https://i.stack.imgur.com/gSAEH.png
Многоугольник A — это черный многоугольник, многоугольник B — это зеленый многоугольник, пересекающий многоугольник A, а возвращаемый многоугольник — это область, заштрихованная синим цветом внутри многоугольника A.
Ответ №1:
Вам нужны алгоритмы или библиотека для логических операций над полигонами. В вашем примере показан вогнутый многоугольник, поэтому вы можете использовать алгоритм Ватти или Грейнера-Хофмана.
Я подозреваю, что правильная реализация этих методов довольно сложна, поэтому рекомендую выбрать готовую к использованию библиотеку, например, с этой страницы / программного обеспечения (я не вижу заявленной поддержки Java, кроме этой, но проверьте возможности)