Угол между тремя точками - через произведение векторов
Даны три точки.
Необходимо найти угол между ними.
Используем скалярное произведение векторов:
_ _ _ _
a * b = |a| * |b| * cos (alpha) = xa * xb + ya * yb
Листинг C++
double angle_point (point a, point b, point c)
{
double x1 = a.x - b.x, x2 = c.x - b.x;
double y1 = a.y - b.y, y2 = c.y - b.y;
double d1 = sqrt (x1 * x1 + y1 * y1);
double d2 = sqrt (x2 * x2 + y2 * y2);
return acos ((x1 * x2 + y1 * y2) / (d1 * d2));
}
22.02.2008, 18:49
По всем вопросам обращаться: rumterg@gmail.com