Выяснить, принадлежит ли точка треугольнику

Произвольный треугольник задан декартовыми координатами своих вершин (X1,Y1),(X2,Y2),(X3,Y3) – целыми числами. Выяснить, принадлежит ли этому треугольнику точка с координатами (X,Y) – целыми числами, т.е. находится ли она внутри него или на ребре.

code: #pascal
  1. var x1,x2,x3,x, y1,y2,y3,y, A,B,U:integer;
  2. begin
  3.   U=(x1-x3)*(y2-y3)-(x2-x3)*(y1-y3);
  4.   if U=0 then writeln('С треугольником что-то не так...')
  5.   else
  6.   begin
  7.     A:=(x-x3)*(y2-y3)-(x2-x3)*(y-y3);
  8.     B:=(x1-x3)*(y-y3)-(x-x3)*(y1-y3);
  9.     if (U<0) and (U<=A) and (A<=0) and (U<=B) and (B<=0) or
  10.        (U>0) and (U>=A) and (A>=0) and (U>=B) and (B>=0) then
  11.        writeln('Внутри треугольника')
  12.     else
  13.        writeln('Снаружи')
  14.   end
  15. end.
Поделиться:

Похожие статьи: