Find intersection point between a vertical line and another line.
Ältere Kommentare anzeigen
Hi everyone,
I have a simple question which I cannot solve. I have to find the intersection point between 2 straight lines but one of them is vertical (slope==Inf) so my function is not working as desired. I have use the code here below and it works perfectly but not if one of the lines is vertical. Any ideas?
AlineX=[0 0];
AlineY=[0 400];
BLineX=[1180 570];
BLineY=[-289.5 250];
p1 = polyfit(AlineX,AlineY,1);
p2 = polyfit(BLineX,BLineY,1);
%Calculating intersection
X=fzero(@(x) polyval(p1-p2,x),3);
Y=polyval(p1,X);
As you can see, there is a A line whose starting coordinate is (0,0) and endind at (0,400) and a B line that starts at (1180,-289.5) and ends at (570,250).
One of the things I tried (since the vertical line is starting at (0,0), is doing 2 opposiute diagonals, like this:
AlineX=[-1180 -570];
AlineY=[-289.5 250];
BLineX=[1180 570];
BLineY=[-289.5 250];
p1 = polyfit(AlineX,AlineY,1);
p2 = polyfit(BLineX,BLineY,1);
%Calculating intersection
X=fzero(@(x) polyval(p1-p2,x),3);
Y=polyval(p1,X);
This gives a solution but the result X is not at 0 so I don't really understand why. Any ideas?
Many thanks in advance
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!