Intersection of two lines

6 次查看(过去 30 天)
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.

采纳的回答

Matt J
Matt J 2021-9-21
编辑:Matt J 2021-9-21
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 个评论
Gaetano Pavone
Gaetano Pavone 2021-9-21
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 2021-9-21
编辑:Matt J 2021-9-21
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by