Положение точки относительно вектора в обходе против часовой стрелки



Даны координаты начала и конца вектора и координаты точки.
Необходимо определить лежит ли эта точка справа от этого вектора.

Напомним свойства ориентированной площади треугольника.
Если она положительна, то третья точка лежит справа от ориентированной линии от первой ко второй точке.
Если она равна нулю, то три точки лежат на одной прямой.
Если она отрицательна, то третья точка лежит слева от ориентированной линии от первой ко второй точке.

Данное свойство удобно использовать при сравнении углов образованных общей точкой. Польза в том, что углы вычислять не потребуется, что значительно повлияет на скорость программы.

Листинг C++

bool ccw (point a, point b, point c)
{
       return area_triangle (a, b, c) > eps;
}


22.02.2008, 19:04

По всем вопросам обращаться: rumterg@gmail.com