Intersection of two lines

조회 수: 6 (최근 30일)
Gaetano Pavone
Gaetano Pavone 2021년 9월 21일
편집: Matt J 2021년 9월 21일
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에서 Graphics Object Programming에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by