locationtech / jts

The JTS Topology Suite is a Java library for creating and manipulating vector geometry.
Other
1.94k stars 442 forks source link

Make line intersection computation more robust #989

Closed dr-jts closed 1 year ago

dr-jts commented 1 year ago

Changes the computation of line intersections to use DoubleDouble arithmetic, for improved accuracy. This uses the existing CGAlgorithmsDD.intersection implementation.

CGAlgorithmsDD.intersection is significantly slower than the original FP implementation. But since in typically use intersection calculation is a small fraction of overall processing, this seems to have almost no practical performance impact.

This does change the results of some intersection cases by a small amount. A few unit tests had to be changed to reflect this.

Fixes #396. Fixes #270 See also https://github.com/libgeos/geos/issues/933 for another case which is fixed by this change.