Flaker
@Flaker

Как определить, принадлежит ли точка ромбу?

О ромбе известно все (Точки, диагонали)
Точка задается координатами X, Y

Нашел: math.stackexchange.com/a/312733, но не совсем уверен, так ли на самом деле, нужны ли вектора?
  • Вопрос задан
  • 10283 просмотра
Пригласить эксперта
Ответы на вопрос 3
SHVV
@SHVV
Собственно, если у вас дагонали dx, dy, и они параллельны осям, а центр - rx, ry, точка - x, y, то проверка сводится к следующей:
|(x - rx) / dx| + |(y - ry) / dy| <= 2.
Всё.
Ответ написан
Комментировать
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Нужно четыре раза проверить, что точка лежит по одну сторону от прямой, содержащей сторону ромба:
vecmul.svg?dl=0
Знак Q определяет, с какой стороны от прямой AB лежит точка T.

Остается проверить это для всех сторон ромба AB, BC, CD, DA, если знак везде одинаков - точка в ромбе.
Ответ написан
EndUser
@EndUser
"Интеграл по контуру".
В общем, суммируете углы AXB, BXC, CXD, DXA.
Если сумма равна ±360°, то точка внутри многоугольника.
Если сумма равна ±180°, то точка на ребре.
В остальных случаях точка снаружи.
Кажется так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы