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

Matlab-基于坐标的直线交点坐标,matlab,Matlab,我有两条直线坐标(x1、y1、x2、y2和x3、y3、x4、y4),如何在不绘制它们的情况下计算交点坐标?交点将是(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)

我有两条直线坐标(x1、y1、x2、y2和x3、y3、x4、y4),如何在不绘制它们的情况下计算交点坐标?

交点将是(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) 强制两个等式相等,你将得到交点,交点为(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) 在两个等式上强制相等,将得到交点

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

下面是一个简短的例子:

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,:));
这将为您提供交点
xi
yi


请注意,此函数的功能远不止处理简单的直线,例如长方体、相交线段等。

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

下面是一个简短的例子:

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,:));
这将为您提供交点
xi
yi


请注意,此函数的功能远不止处理简单的直线,例如长方体、相交线段等。

谢谢,但我没有映射工具箱谢谢,但我没有映射工具箱