Попадет ли точка с координатами X, Y в треугольник с вершинами a1, a2, b1, b2 и c1, c2

01.01.2001

Попадет ли точка с координатами X, Y в треугольник с вершинами a1, a2, b1, b2 и c1, c2.
( Решение оформить в виде функции и проверить ее работу в программе ).

  • Написал:

    type rPoint = record x, y : real; end;

    function inTriangle(x, a, b, c : rPoint) : Boolean;
    function S(a, b, c : rPoint) : Real; begin S := abs((b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y)) / 2; end;
    begin Result := abs(S(a, b, c) - S(x, b, c) - S(a, x, c) - S(a, b, x)) < 0.00001; end;

  • Есть много вариантов решения этой задачи.

    Например :

    1. Через заданную точку провести три прямых параллельных сторонам треугольника. Если каждая из прямых будет пересекать две стороны треугольника, значит точка внутри.

    2. Треугольник можно задать тремя неравенствами, определяющими полуплоскость в которой находится треугольник. Если координаты заданной точки удовлетворяют всем трем неравенствам, значит точка внутри.

    Все вопросы в агент

  • оформил, проверил. не работает =(
  • Могу написать

Вас заинтересует