Выяснить, принадлежит ли точка треугольнику
Категория: Delphi/Pascal
2011-09-04 16:45:08
Произвольный треугольник задан декартовыми координатами своих вершин (X1,Y1),(X2,Y2),(X3,Y3) – целыми числами. Выяснить, принадлежит ли этому треугольнику точка с координатами (X,Y) – целыми числами, т.е. находится ли она внутри него или на ребре.
code: #pascal
- var x1,x2,x3,x, y1,y2,y3,y, A,B,U:integer;
- begin
- U=(x1-x3)*(y2-y3)-(x2-x3)*(y1-y3);
- if U=0 then writeln('С треугольником что-то не так...')
- else
- begin
- A:=(x-x3)*(y2-y3)-(x2-x3)*(y-y3);
- B:=(x1-x3)*(y-y3)-(x-x3)*(y1-y3);
- if (U<0) and (U<=A) and (A<=0) and (U<=B) and (B<=0) or
- (U>0) and (U>=A) and (A>=0) and (U>=B) and (B>=0) then
- writeln('Внутри треугольника')
- else
- writeln('Снаружи')
- end
- end.
Поделиться: