Я реализовал тест на самопересечение многоугольника. Поскольку производительность не так важна, я просто использовал метод грубой силы и сравнивал каждый сегмент друг с другом. Для проверки пересечения линии я использую функцию, размещенную здесь . Это делает свою работу тихо хорошо. Подробно результат теста пересечения линии также дает мне вершины самого многоугольника как точки пересечения. И тут моя проблема вступает в игру. Иногда этот тест не проходит, потому что вычисление точки пересечения является настолько точным, насколько может быть javascript, и невозможно отличить точку пересечения от вершины. Это приводит к неверному результату теста и говорит о том, что многоугольник сам пересекается, даже если он не пересекается.
Как я могу решить эту проблему? Приводит ли округление значений для этого теста к неправильным результатам? Как я могу решить эту проблему должным образом?