LineIntersection

Given two line segments, compute the intersection point.
265 Downloads
Updated 30 Apr 2016

View License

% [E, lambda, gamma, isConvex] = lineIntersection(A,B,C,D)
%
% Given a line segment AB and another line segment CD, compute the point E
% where the lines intersect.
%
% INPUTS:
% A = [2,n] = [Ax;Ay] = point in 2D space
% B = [2,n] = [Bx;By] = point in 2D space
% C = [2,n] = [Cx;Cy] = point in 2D space
% D = [2,n] = [Dx;Dy] = point in 2D space
%
% OUTPUTS:
% E = [2, n] = intersection of lines AB and CD
% lambda = [1,n]
% E = lambda*A + (1-lambda)*B
% gamma = [1,n]
% E = gamma*C + (1-gamma)*D
% isConvex = is intersection on both lines?
% isConvex = (0 <= lambda <= 1) && (0 <= gamma <= 1)
%
% DERIVATION:
% E1 = lambda*A + (1-lambda)*B
% E2 = gamma*C + (1-gamma)*D
% E1 == E2 --> linear system in [lambda; gamma] --> solve
%
% IMPLEMENTATION:
% F = B-D;
% M = [(B-A), (C-D)]
% Z = M\F;
% lambda = Z(1);
% gamma = Z(2);
%

Cite As

Matthew Kelly (2024). LineIntersection (https://www.mathworks.com/matlabcentral/fileexchange/56835-lineintersection), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Spatial Search in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.0.0.0