intersections - function[x0,y0,iout,jout =...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
function [x0,y0,iout,jout] = intersections(x1,y1,x2,y2,robust) %INTERSECTIONS Intersections of curves. % Computes the (x,y) locations where two curves intersect. The curves % can be broken with NaNs or have vertical segments. % % Example: % [X0,Y0] = intersections(X1,Y1,X2,Y2,ROBUST); % % where X1 and Y1 are equal-length vectors of at least two points and % represent curve 1. Similarly, X2 and Y2 represent curve 2. % X0 and Y0 are column vectors containing the points at which the two % curves intersect. % % ROBUST (optional) set to 1 or true means to use a slight variation of the % algorithm that might return duplicates of some intersection points, and % then remove those duplicates. The default is true, but since the % algorithm is slightly slower you can set it to false if you know that % your curves don't intersect at any segment boundaries. Also, the robust % version properly handles parallel and overlapping segments. % % The algorithm can return two additional vectors that indicate which % segment pairs contain intersections and where they are: % % [X0,Y0,I,J] = intersections(X1,Y1,X2,Y2,ROBUST); % % For each element of the vector I, I(k) = (segment number of (X1,Y1)) + % (how far along this segment the intersection is). For example, if I(k) = % 45.25 then the intersection lies a quarter of the way between the line % segment connecting (X1(45),Y1(45)) and (X1(46),Y1(46)). Similarly for % the vector J and the segments in (X2,Y2). % % You can also get intersections of a curve with itself. Simply pass in % only one curve, i.e., % % [X0,Y0] = intersections(X1,Y1,ROBUST); % % where, as before, ROBUST is optional. % % Version: 1.10, 25 February 2008 % Author: Douglas M. Schwarz % Email: dmschwarz=ieee*org, dmschwarz=urgrad*rochester*edu % Real_email = regexprep(Email,{'=','*'},{'@','.'}) % % Theory of operation: % % Given two line segments, L1 and L2, % % L1 endpoints: (x1(1),y1(1)) and (x1(2),y1(2)) % L2 endpoints: (x2(1),y2(1)) and (x2(2),y2(2)) % % we can write four equations with four unknowns and then solve them. The % four unknowns are t1, t2, x0 and y0, where (x0,y0) is the intersection of % L1 and L2, t1 is the distance from the starting point of L1 to the % intersection relative to the length of L1 and t2 is the distance from the
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/16/2009 for the course ENGIN 7 taught by Professor Horowitz during the Spring '08 term at Berkeley.

Page1 / 5

intersections - function[x0,y0,iout,jout =...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online