Есть ли библиотека геометрии для Java? (не JTS)

Я надеюсь на эквивалент CGAL (на С++) - я хочу выпуклую разбивку многоугольников или, по крайней мере, триангуляцию. Он также должен быть бесплатным. Предыдущий вопрос предложил 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, она несколько ориентирована на ГИС.

http://www.geotools.org/

Ответ 3

Вы можете попробовать GeoLib, который является отличным пакетом геометрии.

Ответ 4

CGAL имеет привязки, управляемые SWIG, начиная с 2012 года. Сочетание 2D-триангуляции и сеток является частью этого. Пожалуйста, посетите github wiki для получения более подробной информации.