Effacer les filtres
Effacer les filtres

Intersection of two lines

4 vues (au cours des 30 derniers jours)
Gaetano Pavone
Gaetano Pavone le 21 Sep 2021
Modifié(e) : Matt J le 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.

Réponse acceptée

Matt J
Matt J le 21 Sep 2021
Modifié(e) : Matt J le 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 commentaires
Gaetano Pavone
Gaetano Pavone le 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 le 21 Sep 2021
Modifié(e) : Matt J le 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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Object Programming dans Help Center et File Exchange

Tags

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by