Ориентация вектора
У меня есть линия и несколько точек, и мне нужно определить, какие точки находятся под, а какие за линией. Я попытался найти линию, которая находится под углом 90 градусов к моей линии и пересекает точки, но я не мог понять, является ли ориентация векторов направленной вверх или вниз. Вы можете помочь? Спасибо
1 ответ
Вы можете найти уравнение линии и заменить точки в тонком уравнении.
Простой случай: пусть линия не вертикальная, поэтому она может быть описана уравнением
y = a * x + b
для каждой точки запроса (px, py) вычислить значение
S = py - a * px - b
Когда S положительно, точка выше линии, когда отрицательно - ниже.
Если ваша линия определяется базовой точкой B и вектором направления D, вы можете определить - к какой полуплоскости (относительно линии) относится точка запроса P - используя знак перекрестного произведения
Sign (D x (P-B))
Отметим, что в этом случае термин "ниже" зависит также от знака X-компоненты вектора D