Используйте топологию JTS в JavaFx

У меня есть полигон в библиотеке топологии jts. если я хочу рисовать на панели javafx, я делаю:

 Polygon poly=new Polygon();//javafx
 //g is geometry of jts
    for (Coordinate coord : g.getCoordinates())
    {
        poly.getPoints().addAll(coord.x, coord.y);
    }

и получили дополнительные четыре края, которые не ожидались: введите описание изображения здесь

но те же данные хорошо выглядят в конструкторе тестов: введите здесь описание изображения

что случилось? порядок обхода геометрии? Любые идеи?

Хорошо, я обнаружил, что причина проблемы в том, что в этом многоугольнике есть дыры. Неожиданные линии — это переходы к несоединенным частям этого полигона. Как нарисовать многоугольник с дырками в javafx?


person borovsky    schedule 28.06.2013    source источник


Ответы (1)


Проблема решена: чтобы получить оболочку и отверстия, используйте getInternalRingN, getExternalRingN и в JAVAFX сначала создайте полигон оболочки и отдельно многоугольник отверстий.

затем назначьте оболочку myShape и используйте Path.substract(myShape, anyHole)

person borovsky    schedule 29.06.2013