matlab 求点到任意直线的投影点坐标

    xiaoxiao2021-03-25  91

    【写在前面】因为图像坐标系和我们平时用的直角坐标系还是有不同的。因此在求点到直线投影点坐标的时候,不敢随便把直线用点斜式表示。为此采用向量的方法求投影点。

    公式推导

    代码实现

    function proj_point = ProjPoint( point,line_p ) x1 = line_p(1); y1 = line_p(2); x2 = line_p(3); y2 = line_p(4); x3 = point(1); y3 = point(2); yk = ((x3-x2)*(x1-x2)*(y1-y2) + y3*(y1-y2)^2 + y2*(x1-x2)^2) / (norm([x1-x2,y1-y2])^2); xk = ((x1-x2)*x2*(y1-y2) + (x1-x2)*(x1-x2)*(yk-y2)) / ((x1-x2)*(y1-y2)); if x1 == x2 xk = x1; end if y1 == y2 xk = x3; end proj_point = [xk,yk]; end
    转载请注明原文地址: https://ju.6miu.com/read-35128.html

    最新回复(0)