File Exchange

image thumbnail

Curve intersection

version (1.81 KB) by Johan Rønby
Finds intersections of two piecewise linear plane curves.


Updated 06 Oct 2009

View Version History

View License

[xs,ys] = cint(x1,y1,x2,y2) finds intersection points of the curves defined by straight lines between the length(x1) points in the plane, (x1,y1), and the length(x2) points in the plane (x2,y2).

The function essentially solves

x1(m) + t*diff(x1)(m) = x2(n) + s*diff(x2)(n);
y1(m) + t*diff(y1)(m) = y2(n) + s*diff(y2)(n);

for each combination of line segments and returns

xs = x1 + t*dx1;
ys = y1 + t*dy1;

for all t for which 0<t<1 and 0<s<1 corresponding to an intersection.

For efficiency the function uses bsxfun to construct the length(x1) x length(x2) matrices involved in the calculation.

Points shared by the two arrays (x1,y1) and (x2,y2) are also returned.

Cite As

Johan Rønby (2021). Curve intersection (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!