File Exchange

image thumbnail

straight line and plane intersection

version (1.75 KB) by Nassim Khaled
plane_line_intersect computes the intersection of a plane and a segment(or


Updated 27 Nov 2007

View License

%plane_line_intersect computes the intersection of a plane and a segment (or a straight line)
% Inputs:
% n: normal vector of the Plane
% V0: any point that belongs to the Plane
% P0: end point 1 of the segment P0P1
% P1: end point 2 of the segment P0P1
% I is the point of interection
% Check is an indicator:
% 0 => disjoint (no intersection)
% 1 => the plane intersects P0P1 in the unique point I
% 2 => the segment lies in the plane
% 3=>the intersection lies outside the segment P0P1
% Example:
% Determine the intersection of following the plane x+y+z+3=0 with the segment P0P1:
% The plane is represented by the normal vector n=[1 1 1]
% and an arbitrary point that lies on the plane, ex: V0=[1 1 -5]
% The segment is represented by the following two points
% P0=[-5 1 -1]
%P1=[1 2 3]
% [I,check]=plane_line_intersect([1 1 1],[1 1 -5],[-5 1 -1],[1 2 3]);

Cite As

Nassim Khaled (2019). straight line and plane intersection (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (17)

Shugen Li

very helpful.

I think you should check whether P0 is coincide with P1.

Thanks a lot, very helpful function and very well implemented!

This solution works perfectly. If someone is interested, I extended it such that it calculates the intersection of multiple segments with multiple planes (no loops, but 3 dimensional matrices are used).


James Grove



Marwan N

thnx a lot man....i had a tough job battering my brains to get this job done....g8 work!!


I was using symbolic math toolbox earlier to solve this problem which doesnot get compiled when I use MCR. I used this code and it worked!!! Thanks so much!!

Dear Mr. Nassim Khaled,

Is it possible to find out whether a straight line is intersecting a rectangle using your file?

Say, I have a line made of points (0,0) and (5,5) and a rectangle of points (1,1) (3,1) (3,4) and (1,4). How do know that the line is intersecting the rectangle?

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

Inspired: sliceDelaunay