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)的直线的方程,以及通过其他两点的直线的另一个方程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)
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
。
请注意,此函数的功能远不止处理简单的直线,例如长方体、相交线段等。谢谢,但我没有映射工具箱谢谢,但我没有映射工具箱