Проекция точки на прямую
Дана прямая и точка в трёхмерном пространстве
Найти такую точку на прямой, чтобы расстояние до неё от данной было минимально
Построим треугольник: две точки на прямой и данная точка. Опустим высоту. Найдём расстояния отрезков, отсекаемых высотой. И разделим основание в отношении этих отрезков.
Листинг C++
gpoint closest_point (gline l, gpoint p)
{
gpoint A = l.p;
gpoint B = add_vector (A, l.v, 1);
double Ap = dist (A, p);
double Bp = dist (B, p);
double AB = dist (A, B);
double At = (sqr (Ap) - sqr (Bp) + sqr (AB)) / (2 * AB);
double Bt = AB - At;
return part_segment (A, B, At, Bt);
}
23:59
12.12.09
По всем вопросам обращаться: rumterg@gmail.com