求点A(x0, y0)到直线Ax+By+C=0的垂点B(x1, y1),满足两个条件:
(1)Ax1+By1+C=0,点B在直线上
(2)(y1-y0)/(x1-x0) * A/B=1,两线垂直,斜率k1 * k2 = -1。
注:判断两直线垂直的方法有(1)A1A2+B1B2=0,(2)k1*k2 = -1。
/* 计算点到直线的垂点 */
Point VerticalPoint(Point p, Line l)
{
Point v;
double tmp = l.A * l.A + l.B * l.B;
v.x = (l.B * l.B * p.x - l.A * l.B * p.y - l.A * l.C) / tmp;
v.y = (l.A * l.A * p.y - l.A * l.B * p.x - l.B * l.C) / tmp;
return v;
}