Как найти, пересекается ли линия в JTS?



Есть ли способ узнать, если линия пересекает себя в СТС? Как на следующем рисунке, как я могу найти, если линия пересекает себя? Я создаю эту линию, просто давая координаты ее 4 ребер.



Введите описание изображения здесь



Заранее благодарю.

486   2  

2 ответов:

Ни одна линия не может пересекать саму себя. У вас нет "линии"; у вас есть четыре линии. Вы хотите посмотреть, пересекаются ли они друг с другом.

Вы можете либо вычислить пересечение явно, либо посмотреть, как обозначены координаты. Если вы начнете с нижнего правого угла и пронумеруете точки как A, B, C и D, двигаясь против часовой стрелки, вы увидите, что у вас есть пересечение, если есть линии, соединяющие AC и BD. Если они соединяют AB, BC, CD и DA, то пересечение невозможно кроме общих моментов.

Если линия пересекается подобным образом, isSimple() вернет false, поскольку самопересечение не допускается для простых геометрий.

Comments

    Ничего не найдено.