Matlab - 基于坐标的线的交点坐标

时间:2017-10-13 17:25:30

标签: matlab

我有2个线坐标(x1,y1 x2,y2和x3,y3 x4,y4),如何计算交点坐标而不绘制它们?

2 个答案:

答案 0 :(得分:2)

您可以使用函数polyxpoly来获取交叉点。 有关文档和更多信息,请参阅here

这是一个简短的例子:

start1 = [1;1];
end1 = [3;3];
line1 = [start1, end1];

start2 = [1;3];
end2 = [2;1];
line2 = [start2,end2];

[xi, yi] = polyxpoly(line1(1,:), line1(2,:), line2(1,:), line2(2,:));

这将为您提供交叉点xiyiIntersection

请注意,此功能比处理简单线条(例如方框,交叉线段等)要多得多。

答案 1 :(得分:0)

交点将是(x,y)=((b1-b)/(1-a1),(a1 * b-b1 * a)/(a1-a))

其中a =(y1-y2)/(x1-x2);

a1 =(y3-y4)/(x3-x4);

b = y1-x1 *(y1-y2)/(x1-x2);

b1 = y3 - x3 *(y3-y4)/(x3-x4)

您可以按照以下步骤检查代数:

1)找到通过(x1,y1)和(x2,y2)的线的等式,以及通过其他两点的线的另一个等式;

2)强制相等到两个方程式上,你将得到交点