如何找到线之间的交点matlab [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
        如果您有直线方程,则只需求解两个未知数(交点x,y)的3个方程。为此使用matlab矩阵除法运算符(\\)。 例如: 您有3行: X + 2Y = 7 3X + 4Y = 8 5X + 6Y = 9 代码是:
A = [1,2;3,4;5,6]
b = [7,8,9]\'
x = A\\b
如果您不知道方程式,但仅知道那些线通过的像素,则将所有线拖到黑色图像上并搜索最大像素值。相交点将比其余线亮3倍。 如果要减少运行时间,而不是从任意线上的像素开始并对其相邻像素进行迭代,直到找到相交点。     
        没有线的方程式或点会增加难度。如果这只是一次操作,而您只有3条线,建议使用
ginput
并手动选择点。 因此,绘制完图形后,在命令行中输入
[x,y]=ginput;
。这应该使您的图集中注意力,并且您会看到可以在图上移动的十字准线。现在,单击您感兴趣的三个点,然后按Enter。现在
x
y
将包含三个点的坐标。     
        总体策略如下: 1.在每条路线上选择两个点 2.使用这两点获得线方程 3.使用线方程式找到它们的交点 您必须弄清楚如何在每条线上选择两个点,例如,对于第1行,它是p1和p2,而对于第2行,它是q1和q2。然后,如果p [1 | 2],q [1 | 2]是2D行向量,则
line1 = GetLineFromTwoImagePoints(p1, p2);
line2 = GetLineFromTwoImagePoints(q1, q2);
intersection = GetPointFromTwoImageLines(line1, line2);

function line = GetLineFromTwoImagePoints( one, two )
    line = cross([one 1], [two 1]);
end

function point = GetPointFromTwoImageLines( one, two )
    p = cross(one, two);
    point = [p(1)/p(3) p(2)/p(3)];
end
    

要回复问题请先登录注册