Testing whether a polygon is simple or complex

前端 未结 3 576
天涯浪人
天涯浪人 2020-12-13 15:45

For a polygon defined as a sequence of (x,y) points, how can I detect whether it is complex or not? A complex polygon has intersections with itself, as shown:

相关标签:
3条回答
  • 2020-12-13 16:14

    In fact, this can be done in linear time use Chazelle's triangulation algorithm. It either triangulates the polygon or find out the polygon is not simple.

    0 讨论(0)
  • 2020-12-13 16:17

    See Bentley Ottmann Algorithm for a sweep based O((N + I)log N) method for this. Where N is the number of line segments and I is number of intersection points.

    0 讨论(0)
  • 2020-12-13 16:23

    There are sweep methods which can determine this much faster than a brute force approach. In addition, they can be used to break a non-simple polygon into multiple simple polygons.

    For details, see this article, in particular, this code to test for a simple polygon.

    0 讨论(0)
提交回复
热议问题