Дана точка А(х, у). Определить, принадлежит ли она треугольнику с вершинами в точках (X1, у1), (х2, У2), (х3,y3). (программа Паскаль)

Tsoller04 Tsoller04    2   16.04.2019 23:00    3

Ответы
динара266 динара266  16.04.2019 23:00
uses crt;
const t=0.0001;
function Plosh(x1,y1,x2,y2,x3,y3:real):real;
begin
Plosh:=abs((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2;
end;
var x1,y1,x2,y2,x3,y3,tx,ty,s:real;
begin
clrscr;
writeln('Введите координаты вершин треугольника:');
writeln('Вершина 1:');readln(x1,y1);
writeln('Вершина 2:');readln(x2,y2);
writeln('Вершина 3:');readln(x3,y3);
if Plosh(x1,y1,x2,y2,x3,y3)<t then
write('Это не треугольник!')
else
 begin
  writeln('Введите координаты точки:');
  readln(tx,ty);
  s:= Plosh(x1,y1,x2,y2,tx,ty)+ Plosh(x1,y1,tx,ty,x3,y3)+ Plosh(tx,ty,x2,y2,x3,y3);
  if  abs(Plosh(x1,y1,x2,y2,x3,y3)-s)<t then
  write('Точка принадлежит треугольнику!')
  else write('Точка не принадлежит треугольнику!');
 end;
readln
end.
ПОКАЗАТЬ ОТВЕТЫ
20070706 20070706  16.04.2019 23:00
uses crt;
var x1,y1,x2,y2,x3,y3,tx,ty:real;
begin
clrscr;
writeln('Введите координаты вершин треугольника по часовой стрелке:');
readln(x1,y1,x2,y2,x3,y3);
writeln('Введите координаты точки:');
readln(tx,ty);
if((tx-x1)*(y1-y2)-(ty-y1)*(x1-x2)>=0)
and((tx-x2)*(y2-y3)-(ty-y2)*(x2-x3)>=0)
and((tx-x3)*(y3-y1)-(ty-y3)*(x3-x1)>=0) then
write('Лежит') else write('Не лежит');
readln
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы