Intersection of two lines

6 views (last 30 days)
Gaetano Pavone
Gaetano Pavone on 21 Sep 2021
Edited: Matt J on 21 Sep 2021
Hi, I have four coplanar points P1, P2, P3 and P4 in 3d. I would like to calculate the intersection point among the line passing through P1 and P2 and that passing through P3 and P4.
Moreover I would like to evaluate the angle between the vector connecting such intersection and the origin with z-axis and then plot the vector.

Accepted Answer

Matt J
Matt J on 21 Sep 2021
Edited: Matt J on 21 Sep 2021
You need a least squares solution, since lines in 3D do not generally intersect. Assuming your point data are in column-vector form, this is,
c=[P2-P1,P3-P4]\(P3-P1);
P_intersection=P1+c(1)*(P2-P1)
angle=acos(P_intersection(3)/norm(P_intersection))
  6 Comments
Gaetano Pavone
Gaetano Pavone on 21 Sep 2021
For
P1=[735;234;1397];
P2=[234;735;1397];
P3=[-265;234;1397];
P4=[234;-265;1397];
c=[P2-P1,P3-P4]\[-P1,P3];
P_intersection=P1+c(1)*(P2-P1);
angle=acos(P_intersection(3)/norm(P_intersection));
it doesn't give me the correct answer.
P_intersection should be [234;234;1397].
Matt J
Matt J on 21 Sep 2021
Edited: Matt J on 21 Sep 2021
You seem to have had P2 and P3 interchanged.
P1=[735;234;1397];
P3=[234;735;1397];
P2=[-265;234;1397];
P4=[234;-265;1397];
c=[P2-P1,P3-P4]\(P3-P1); %edited
P_intersection=P1+c(1)*(P2-P1)
P_intersection = 3×1
234 234 1397

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!