This function computes the (x,y) locations where two curves intersect. The curves can be broken with NaNs or have vertical segments. It is also very fast (at least on data that represents what I think is a typical application).
Douglas Schwarz (2023). Fast and Robust Curve Intersections (https://www.mathworks.com/matlabcentral/fileexchange/11837-fast-and-robust-curve-intersections), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: Curve Intersect 2
Inspired: RivMAP - River Morphodynamics from Analysis of Planforms, clabel_along, Fast and Robust Self-Intersections, Kirchhoff Vortex Contour Dynamics Simulation, Fast Line Segment Intersection, Gear shift map for Automatic Transmission in S mode, Matlab to Ansys ICEM/Fluent and Spline Drawing Toolbox, anomaly
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
This version uses implicit expansion (or bsxfun in slightly older MATLAB versions) to compute the line segments that might overlap. When the number of line segments is large, it uses a different algorithm to avoid forming large matrices.
Fixed bug that my previous "bug fix" failed to fix.
Fixed bug identified by Rodrigo Portugal. No longer fails when there are no intersections and you need 4 outputs.
Added ability to find self-intersections of one curve.