Ориентация вектора

У меня есть линия и несколько точек, и мне нужно определить, какие точки находятся под, а какие за линией. Я попытался найти линию, которая находится под углом 90 градусов к моей линии и пересекает точки, но я не мог понять, является ли ориентация векторов направленной вверх или вниз. Вы можете помочь? Спасибо

1 ответ

Вы можете найти уравнение линии и заменить точки в тонком уравнении.

Простой случай: пусть линия не вертикальная, поэтому она может быть описана уравнением

y = a * x + b

для каждой точки запроса (px, py) вычислить значение

S = py - a * px - b

Когда S положительно, точка выше линии, когда отрицательно - ниже.

Если ваша линия определяется базовой точкой B и вектором направления D, вы можете определить - к какой полуплоскости (относительно линии) относится точка запроса P - используя знак перекрестного произведения

Sign (D x (P-B))

Отметим, что в этом случае термин "ниже" зависит также от знака X-компоненты вектора D

Другие вопросы по тегам