How do I find the intersection point of two lines in MATLAB 6.5 (R13)?
40 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 27 Juin 2009
Modifié(e) : MathWorks Support Team
le 30 Avr 2020
How do I find the intersection point of two lines in MATLAB 6.5 (R13)?
Réponse acceptée
MathWorks Support Team
le 30 Avr 2020
Modifié(e) : MathWorks Support Team
le 30 Avr 2020
Currently, there is no function in MATLAB that allows you to find intersection of any two lines or line segments. If you know that two lines in 2D intersect (are not skew) and you know two points on each of those lines, you can find the intersection using the following formula:
% Sample data
L1_x1 = 1;
L1_y1 = 2;
L1_x2 = 3;
L1_y2 = 4;
L2_x1 = 1;
L2_y1 = 4;
L2_x2 = 3;
L2_y2 = 3;
% Plot the lines
plot([L1_x1 L1_x2], [L1_y1 L1_y2])
hold on
plot([L2_x1 L2_x2], [L2_y1 L2_y2])
% Compute several intermediate quantities
Dx12 = L1_x1-L1_x2;
Dx34 = L2_x1-L2_x2;
Dy12 = L1_y1-L1_y2;
Dy34 = L2_y1-L2_y2;
Dx24 = L1_x2-L2_x2;
Dy24 = L1_y2-L2_y2;
% Solve for t and s parameters
ts = [Dx12 -Dx34; Dy12 -Dy34] \ [-Dx24; -Dy24];
% Take weighted combinations of points on the line
P = ts(1)*[L1_x1; L1_y1] + (1-ts(1))*[L1_x2; L1_y2];
Q = ts(2)*[L2_x1; L2_y1] + (1-ts(2))*[L2_x2; L2_y2];
% Plot intersection points
plot(P(1), P(2), 'ro')
plot(Q(1), Q(2), 'bo')
hold off
P and Q both contain the values of the common intersection point.
Alternately, if you have discrete data and know that some point is in data sets for both lines, you can use the "intersect" function.
Finally, if you own the "Mapping Toolbox" for MATLAB, you can use the "polyxpoly" function to calculate the intersection point.
For more information on these or any other command, type the following at the MATLAB command prompt:
help function_name
% or
doc function_name
%where function_name is the name of the function of interest
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Sources dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!