Code covered by the BSD License

### Highlights from Curve intersection

Be the first to rate this file! 2 Downloads (last 30 days) File Size: 1.81 KB File ID: #25501 Version: 1.2

# Curve intersection

### Johan Rønby (view profile)

06 Oct 2009 (Updated )

Finds intersections of two piecewise linear plane curves.

File Information
Description

[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.

MATLAB release MATLAB 7.5 (R2007b)