Я хочу определить положение точки для линии подачи в c #. Я прочитал эту ссылку и эту ссылку . Я проверяю их, но кажется, что мой код неверен. Для некоторых точек, близких (не очень близких) к линии, возвращаются неправильные значения. Вот мой код:
public static PointToLineSituation WhereIsPoint(Line l, Point p)
{
var x = p.X;
var y = p.Y;
var x1 = l.X1;
var x2 = l.X2;
var y1 = l.Y1;
var y2 = l.Y2;
var d = (x - x1) * (y1 - y2) - (y - y1) * (x2 - x1);
if (d > 0)
return PointToLineSituation.Up;
if (d < 0)
return PointToLineSituation.Down;
return PointToLineSituation.OnLine;
}
Я хочу использовать в графической координации. Это моя проблема? Любая помощь будет оценена.
Вот пример системы координации, точки вверх и точки вниз, как показано ниже: