POLYLINESELFINTERSECTIONS Find self-intersection points of a polyline.
Computes self-intersections of a polyline, eventually specifying if
polyline is closed or open, and eventually returning position of
intersection points on polyline.
For common use cases, the intersectPolylines function may return the
desired result in a faster way.
PTS = polylineSelfIntersections(POLY);
Returns the position of self intersections of the given polyline.
PTS = polylineSelfIntersections(POLY, CLOSED);
Adds an options to specify if the polyline is closed (i.e., is a
polygon), or open (the default). CLOSED can be a boolean, or one of
'closed' or 'open'.
[PTS, POS1, POS2] = polylineSelfIntersections(POLY);
Also return the 2 positions of each intersection point (the position
when meeting point for first time, then position when meeting point
for the second time).
[...] = polylineSelfIntersections(POLY, 'tolerance', TOL)
Specifies an additional parameter to decide whether two intersection
points should be considered the same, based on their Euclidean
distance.
Example
% use a gamma-shaped polyline
poly = [0 0;0 10;20 10;20 20;10 20;10 0];
polylineSelfIntersections(poly)
ans =
10 10
% use a 'S'-shaped polyline
poly = [10 0;0 0;0 10;20 10;20 20;10 20];
polylineSelfIntersections(poly)
ans =
Empty matrix: 0-by-2
polylineSelfIntersections(poly, 'closed')
ans =
10 10
See also
polygons2d, intersectPolylines, polygonSelfIntersections
Package: matgeom