Я надеюсь на эквивалент CGAL (на С++) - я хочу выпуклую разбивку многоугольников или, по крайней мере, триангуляцию. Он также должен быть бесплатным. Предыдущий вопрос предложил JTS, но он, похоже, не имеет этих функций.
Есть ли библиотека геометрии для Java? (не JTS)
Ответ 1
JTS поддерживает триангуляцию delaunay, но не ограниченную триангуляцию (дырки):
http://lin-ear-th-inking.blogspot.com/2009/04/delaunay-triangulation-in-jts-111.html
Для ограниченной триангуляции delaunay вы можете использовать Poly2Tri. Работает неплохо, но не может триангулировать многоугольники с отверстиями, где отверстия касаются контура или касаются другого полигона.
В настоящее время я использую OpenGl Tesselator (glut) с jogl jugl (http://jogamp.org/) для триангуляции в java. Вы должны выполнить правильные обратные вызовы и сделать там что-нибудь.
Ни один из них не удовлетворяет всех (моих) потребностей, но до сих пор я не нашел лучшего.
Ответ 2
GeoTools имеет довольно обширную библиотеку алгоритмов манипуляции геометрией, но, конечно же, как JTS, она несколько ориентирована на ГИС.
Ответ 3
Вы можете попробовать GeoLib
, который является отличным пакетом геометрии.
Ответ 4
CGAL имеет привязки, управляемые SWIG, начиная с 2012 года. Сочетание 2D-триангуляции и сеток является частью этого. Пожалуйста, посетите github wiki для получения более подробной информации.