Проверка на попадание курсором в линию

можете пожалуйста подсказать или подкинуть идею алгоритма проверки попадания точки на линию? Разобрался с кругом и прямоугольником , но с линией не пойму как определить , попробовал воспользоваться информацией по данной ссылке , но ничего особо не получилось : https://www.cyberforum.ru/delphi-beginners/thread652199.html

Пробовал рассматривать 4 случая : для начала представить прямую в качестве графика функции(прямой) и далее когда функция убывает (1) точка начала вектора снизу , потом сверху) потом , когда функция возрастает (также точка начала вектора снизу, потом сверху)

D = (x-Hx) * (y2 - y) - (Hy - y) * (x - x2);
            if (D<20 && D>-20)
            {

                return true;//if(Hx<=x2 && Hy<=y2 && Hx>=x && Hy>=y)
                //{
                //    return true;
                //}
                //    else if(Hx<=x && Hy <=y && Hx>=x2 && Hy>=y2)
                //        {
                //        return true;
                //        }
                //else if (Hx>=x && Hy<=y && Hx<=x2 && Hy>=y2)
                //{
                //    return true;
                //}
                //else if(Hx<=x && Hy>=y && Hx>=x2 && Hy<=y2)
                //{
                //    return true;
                //}
            }

Hx,Hy - координаты нажатия мышки


Ответы (0 шт):