Есть отрезок A-vec2,B-vec2 с шириной width , есть координаты точки C-vec2. Надо узнать содержит ли отрезок эту точку.
Можно, вот так
bool ui_line_contains_point_point(vec2 start, vec2 end,float width, vec2 point)
{
float m = (end.y - start.y) / (end.x - start.x);
float b = start.y - m * start.x;
return (fabs(point.y - (m*point.x+b)) < (width / 100)); // epsilon
}
A-vec2 и B-vec2 всегда положительны, B-vec2 может быть меньше A-vec2.
Всё хорошо, но вот если точка C-vec2 как бы с лева или с права от отрезка и явно не входит в отрезок то всё равно определяется что отрезок содержит точку, я чёт не могу допетрить что я делаю не так, туплю =)
Как можно по другому (желательно максимально быстро) рассчитать?
P.S. Попрошу без математических формул, я в них не разбираюсь, псевдокодом или просто советом
UDP: Решено Математики ауууу. Проверка вхождения точки в отрезок (комментарий)
UDP: Решено ещё раз :D Математики ауууу. Проверка вхождения точки в отрезок (комментарий)