【写在前面】因为图像坐标系和我们平时用的直角坐标系还是有不同的。因此在求点到直线投影点坐标的时候,不敢随便把直线用点斜式表示。为此采用向量的方法求投影点。
公式推导
代码实现
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