将AB写成参数式A+tv(v为向量AB),设Q的参数为t。, 那么Q=A+vt。,由点积为0可得Dot(v,p-(A+vt。)) = 0,这样就可以解出t。
Point getlineprojection(Point P, Point A, Point B){
Vector v = B-A;
return A+v*(Dot(v,P-A) / Dot(v,v));
}
将AB写成参数式A+tv(v为向量AB),设Q的参数为t。, 那么Q=A+vt。,由点积为0可得Dot(v,p-(A+vt。)) = 0,这样就可以解出t。
Point getlineprojection(Point P, Point A, Point B){
Vector v = B-A;
return A+v*(Dot(v,P-A) / Dot(v,v));
}